У меня есть следующая функция, чтобы связать кнопку в файле пользовательского интерфейса с функцией в классе.
void Window::connectButton() {
connect(ui->pushButton, SIGNAL(released()), this, SLOT(clear()));
}
Чего я действительно хочу добиться, так это связать кнопку с функцией в производном классе , Я не могу использовать функцию connect()
выше, потому что не могу получить доступ к ui->pushButton
из производного класса. В итоге я получил следующее:
void Window::connectButton(void (*func)(void)) {
connect(ui->pushButton, SIGNAL(released()), this, SLOT(func()));
}
Если это полезно, эта функция реализована в производном классе следующим образом:
void Transmit::setWindow() {
windowTitle();
setWindowSize();
connectButton(clear);
//clear is a redefined function for the derived class
//inherited from the Window class
}
Я продолжаю получать сообщение о том, что func
не используется в функции connectButton(void (*)())
, и func2
нельзя передать в connectButton(void (*)())
.
Это мой первый эксперимент с указателями функций, так что любой может указать мне направление моих ошибок или, если это более жизнеспособно, лучший способ реализации кода.
Заранее спасибо