在Qt项目Visual Studio中添加按钮单击处理程序

时间:2011-08-17 11:03:29

标签: c++ windows qt

我在VS2008中使用Qt SDK和Visual Studio Qt加载项。我用主窗口类MainWindow创建了Qt UI项目。双击mainwindow.ui打开Qt Designer。然后我在窗口添加了按钮,并将其称为pushButton。在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 个答案:

答案 0 :(得分:4)

如果使用信号/插槽编辑器,则必须手动添加这些代码。如果您双击设计器中的按钮,旧Qt加载项会自动添加这些。现在Qt Designer是一个单独的应用程序。双击是不可能的。

您也可以使用automatic connections。通过自动连接,您无需使用插槽连接信号。具有特殊命名约定的函数,自动调用。与on_okButton_clicked一样。