Yeah instead of the QVariant I am expecting a QVariantMap (but the connection doesn't work with a slot with that kind of prototype). Here is an example of the data that would be received array [ dict entry( string "Address" variant string "FF:FF:FF:FF:FF:FF" ) dict entry( string "AddressType" variant string "random" ) dict entry( string "Name" variant string "device name" ) dict entry( string "Alias" variant string "device alias" ) dict entry( string "Paired" variant boolean false ) dict entry( string "Trusted" variant boolean false ) dict entry( string "Blocked" variant boolean false ) dict entry( string "LegacyPairing" variant boolean false ) dict entry( string "RSSI" variant int16 -69 ) dict entry( string "Connected" variant boolean false ) dict entry( string "UUIDs" variant array [ string "0000fea0-0000-1000-8000-00805f9b34fb" ] ) dict entry( string "Adapter" variant object path "/org/bluez/hci0" ) dict entry( string "ServiceData" variant array [ dict entry( string "00000000-0000-0000-0000-000000000000" variant array of bytes [ ff ff ff ff ff ff ff ff ff ff ff ff ff ] ) ] ) dict entry( string "ServicesResolved" variant boolean false ) ] where array is essentially the Map.