我在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(); }
它有效,但我想知道这是否是正确的方法。是否应该手动添加插槽声明和实现,或者我遗漏了什么?
答案 0 :(得分:4)
如果使用信号/插槽编辑器,则必须手动添加这些代码。如果您双击设计器中的按钮,旧Qt加载项会自动添加这些。现在Qt Designer是一个单独的应用程序。双击是不可能的。
您也可以使用automatic connections。通过自动连接,您无需使用插槽连接信号。具有特殊命名约定的函数,自动调用。与on_okButton_clicked
一样。