QT - Class For Connecting to Mqtt Broker With QMqttClient
Qt-ness

My QT is a little bit rusty, but you're probably not doing the right thing here. First QObject have their own memory management, usually each QObject constructor takes a parent, this parent takes ownership of the created object. As the setParent() function is always available, interfering with the memory management via std::unique_ptr or std::shared_ptr is usually not a good idea. 

Additionally you are containing QMQTTClient for what looks like just configuration reasons, there really doesn't seem to be any need to wrap it in another layer, you might as well just replace your client with QMQTTClient and connect to it. If you want to wrap configuration, a free function will do with much less overhead.

Stack-vs-Heap

Both the QMQTTClient and the MQTTConfig could as well be stack allocated, making everything easier. Passing MQTTConfig by reference will work well enough.

MQTTConfig

The constructor should use initializer lists and not the function body for member variable initialization.

MqttConfig() : hostname("localhost"), port(1883) {}


I'd probably prefer default values for this, 

MqttConfig(QString h = "localhost", qint16 p = 1883  ) : hostname(h), port(p) {}


SubscriptionConfig

The default constructor doesn't need to be deleted if you are defining a custom constructor