Я прочитал несколько статей о событиях нажатия кнопок в Qt, но, похоже, ни одна из них не решила мою проблему. У меня есть простой графический интерфейс, построенный с помощью Qt Designer, который содержит только одну кнопку. Я получаю ошибку во время выполнения:
Object :: connect: такого слота нет. QApplication :: FullSizeR () в CameraWindow.h: 25
Object :: connect: (имя отправителя: 'FullSize')
Object :: connect: (имя получателя: 'CameraViewer')
FullSizeR () - это функция, которую я хочу вызвать, когда нажимается Моя кнопка.
Вот как определяется основной:
int main(int argc, char *argv[]) {
// initialize resources, if needed
// Q_INIT_RESOURCE(resfile);
QApplication app(argc, argv);
CameraWindow cw;
cw.show();
//app.setActiveWindow(&cw);
//cw.getData(); // this paints the window
return app.exec();
}
И вот как определено CameraWindow:
class CameraWindow : public QDialog{
Q_OBJECT
public:
bool serverConnected;
void getData();
CameraWindow()
{
widget.setupUi(this); //this calls Qt Designer code
//the function bellow produces a run-time error
//access the button via widget.FullSize
connect(widget.FullSize,SIGNAL(clicked()), qApp, SLOT(FullSizeR()));
}
QLabel *imgl;
virtual ~CameraWindow();
protected slots:
void FullSizeR();
private:
Ui::CameraWindow widget;
};
Я правильно включил QObject и определение моей функции в 'slots'
Это определение FullSizeR:
void CameraWindow::FullSizeR()
{
QMessageBox::information(this,"Button clicked!\n", "Warning");
}
Вышесказанное не кажется трудным для решения. Я знаю что-то простое, если бы я знал немного лучше Qt: - /
Спасибо всем