Добавить обработчик нажатия кнопки в проекте Qt, Visual Studio - PullRequest
4 голосов
/ 17 августа 2011

У меня есть Qt SDK и надстройка Visual Studio Qt, работающая в VS2008. Я создал проект Qt UI с классом главного окна MainWindow. Двойной щелчок на mainwindow.ui открывает Qt Designer. Затем я добавил кнопку в окно и назвал ее кнопкой. В режиме Signals-Slots мне удалось связать сигнал нажатия кнопки со слотом MainWindow ButtonClicked. Редактор сигналов / слотов выглядит так:

Sender   pushButton
Signal   clicked()
Receiver MainWindowClass
Slot     ButtonClicked()

Файл mainwindow.ui был изменен, отражая эту новую информацию. Однако mainwindow.cpp и mainwindow.h остаются без изменений. Я ожидаю увидеть место, где я могу добавить свой собственный код. Итак, я добавил этот код вручную:

// mainwindow.h
...
protected slots:
    void ButtonClicked();

// mainwindow.cpp
void MainWindow::ButtonClicked()
{
    QMessageBox msgBox;
    msgBox.setText("Clicked");
    msgBox.exec();
}

Это работает, но мне интересно, является ли это правильным способом сделать это. Должны ли быть добавлены объявление и реализация слота вручную, или я что-то упустил?

1 Ответ

4 голосов
/ 17 августа 2011

Если вы используете редактор сигналов / слотов, вы должны добавить эти коды вручную.Старая надстройка Qt автоматически добавляла их, если вы дважды щелкаете на кнопке дизайнера.Теперь Qt Designer - это отдельное приложение.Двойной щелчок невозможен.

Также вы можете использовать автоматические соединения .При автоматическом подключении вам не нужно соединять сигналы со слотами.Функции, которые имеют специальное соглашение об именах, вызываются автоматически.Как on_okButton_clicked.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...