我一直在 YouTube 上观看 Qt 教程系列,其中作者展示了按下按钮时如何调用函数。他右键单击 Qt Creator IDE 中的按钮并选择“Go to slot”,从中选择将触发生成函数的信号. 由于我习惯于使用 Netbeans 进行开发,因此我只是尝试使用嵌入式 Qt 设计器来效仿他的示例。不幸的是,当我右键单击我的按钮或任何小部件时,没有“转到插槽...”条目。当然,我可以为我的主窗口创建一个新插槽,然后将按钮的信号连接到它,但是对我来说,用一个函数来做这件事似乎更方便和干净。有没有办法解决,或者如果没有,至少可以完全通过代码来处理,而不必为每个用于不同目的的按钮添加一个新插槽到主窗口?谢谢你的帮助。
问问题
4517 次
1 回答
9
虽然我不知道为什么 Netbeans 中的 QtDesigner 不提供此功能,但我知道该功能的作用:它只是在您的小部件类中创建一个具有特殊名称的插槽。请注意,它不会添加连接语句。它使用自动连接功能,其工作原理如下:
对于名称与此模式匹配的每个插槽:
void on_X_Y(...)
它将连接到名为Y
的对象的信号名X
。因此,如果您有一个名为 的 QPushButton button
,并且您想处理信号pressed
,只需创建一个具有以下签名的插槽:
void on_button_pressed()
如果您想知道这个插槽是如何连接到信号的:这发生在ui_...h
文件末尾的文件中setupUi()
:
QMetaObject::connectSlotsByName(WidgetName);
于 2012-09-01T13:23:50.977 回答