QT 5.1:
Чтобы удалить избыточный код, я хочу передать общую логику на аутсорсинг, следующие два вызова функций содержат:
client.cpp
void Client::connectToSignals()
{
QObject::connect(Client::mqtt.get(), &QMqttClient::connected, this,
&Client::onConnected);
QObject::connect(Client::mqtt.get(), &QMqttClient::disconnected, this,
&Client::onDisconnected);
}
Поэтому Client::mqtt.get()
и контекст this
всегда остаются одинаковыми. Таким образом, метод должен принимать signal
и slot
в качестве параметров. Функция slot
всегда определяется в client.h
.
Тело метода новой функции без параметров выглядит следующим образом:
void Client::connectToMqttSignal(){}
Какой тип можно использовать для параметров? Могу ли я указать, что мне нужны только функции Signal
из QMqttClient
, установив определенный тип без проверки идентификатора типа во время выполнения? И как лучше передать Slot
в качестве параметра?
Я читал здесь о сигналах и слотах:
https://doc.qt.io/qt-5/signalsandslots.html
Документация для QMqttCLient