我有在 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 文件已更改,以反射(reflect)此新信息。但是,mainwindow.cpp 和 mainwindow.h 保持不变。我希望看到可以添加自己的代码的地方。所以,我手动添加了这段代码:
// mainwindow.h ... protected slots: void ButtonClicked(); // mainwindow.cpp void MainWindow::ButtonClicked() { QMessageBox msgBox; msgBox.setText("Clicked"); msgBox.exec(); }
它有效,但我想知道这是否是执行此操作的正确方法。插槽声明和实现是否应该手动添加,或者我遗漏了什么?
最佳答案
如果您使用信号/槽编辑器,您必须手动添加这些代码。如果您双击设计器中的按钮,旧的 Qt 插件会自动添加这些。现在 Qt Designer 是一个独立的应用程序。无法双击。
您也可以使用 automatic connections .使用自动连接,您不需要将信号与槽连接。具有特殊命名约定的函数,自动调用。比如 on_okButton_clicked
。
关于c++ - 在 Qt 项目、Visual Studio 中添加按钮单击处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7091748/