C++ Qt Designer,缺失“;“转到插槽”;在上下文菜单中?

C++ Qt Designer,缺失“;“转到插槽”;在上下文菜单中?,c++,qt,netbeans,signals-slots,qt-designer,C++,Qt,Netbeans,Signals Slots,Qt Designer,我一直在YouTube上观看Qt教程系列,作者在其中演示了当按下按钮时如何调用函数。因为我习惯于使用Netbeans进行开发,所以我只是尝试使用嵌入式Qt设计器来仿效他的例子。不幸的是,当我右键单击按钮或任何小部件时,没有“转到插槽…”条目。当然,我可以为我的主窗口创建一个新的插槽,然后将按钮的信号连接到它,但是使用单个功能似乎对我来说更方便、更干净。有没有一种方法可以解决这个问题,或者如果没有,至少可以完全解决via代码问题,而不必为每个服务于不同用途的按钮在主窗口中添加新的插槽?感谢您的帮助

我一直在YouTube上观看Qt教程系列,作者在其中演示了当按下按钮时如何调用函数。因为我习惯于使用Netbeans进行开发,所以我只是尝试使用嵌入式Qt设计器来仿效他的例子。不幸的是,当我右键单击按钮或任何小部件时,没有“转到插槽…”条目。当然,我可以为我的主窗口创建一个新的插槽,然后将按钮的信号连接到它,但是使用单个功能似乎对我来说更方便、更干净。有没有一种方法可以解决这个问题,或者如果没有,至少可以完全解决via代码问题,而不必为每个服务于不同用途的按钮在主窗口中添加新的插槽?感谢您的帮助。

虽然我不知道Netbeans中的QtDesigner为什么不提供此功能,但我知道该功能的作用:它只是在小部件类中创建了一个具有特殊名称的插槽。请注意,它不添加connect语句。它使用自动连接功能,其工作原理如下:

对于名称与此模式匹配的每个插槽:

void on_X_Y(…)

它将连接到名为
X
的对象的名为
Y
的信号。因此,如果您有一个名为
button
的QPushButton,并且希望处理按下的信号
,只需创建一个具有以下签名的插槽:

按下按钮时无效()

如果您想知道此插槽是如何连接到信号的:这发生在
ui\uh
文件的
setupUi()
末尾:


虽然我不知道Netbeans中的QtDesigner为什么不提供此功能,但我知道该功能的作用:它只是在小部件类中创建一个具有特殊名称的插槽。请注意,它不添加connect语句。它使用自动连接功能,其工作原理如下:

对于名称与此模式匹配的每个插槽:

void on_X_Y(…)

它将连接到名为
X
的对象的名为
Y
的信号。因此,如果您有一个名为
button
的QPushButton,并且希望处理按下的信号
,只需创建一个具有以下签名的插槽:

按下按钮时无效()

如果您想知道此插槽是如何连接到信号的:这发生在
ui\uh
文件的
setupUi()
末尾:

    QMetaObject::connectSlotsByName(WidgetName);