Событие кнопки Qt с использованием Qt Designer не работает: «Нет такого слота QApplication» - PullRequest
0 голосов
/ 06 июля 2011

Я прочитал несколько статей о событиях нажатия кнопок в 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: - /

Спасибо всем

1 Ответ

3 голосов
/ 06 июля 2011
connect(widget.FullSize,SIGNAL(clicked()), qApp, SLOT(FullSizeR()));

Сообщение об ошибке говорит само за себя: qApp не имеет слота.Вам нужно this:

connect(widget.FullSize, SIGNAL(clicked()), this, SLOT(FullSizeR()));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...