Qt Designer,在上下文菜单中缺少"转到插槽"?

Byz*_*ian 4 c++ qt netbeans signals-slots qt-designer

我一直在观看YouTube上的Qt教程系列,其中作者展示了当按下按钮时如何调用函数.他右键单击Qt Creator IDE中的按钮并选择"Go to slot",从中他选择了可以触发生成函数的信号.由于我习惯使用Netbeans开发,我只是尝试使用嵌入式Qt Designer来跟随他的例子.不幸的是,当我右键单击我的按钮或任何小部件时,没有"转到插槽..."条目.当然,我可以为我的主窗口创建一个新的插槽,然后将按钮的信号连接到它,但是使用单个功能执行它对我来说似乎更方便和干净.有没有办法修复是否,或者如果没有,至少是一种完全通过代码的方式,而不必为每个服务于不同目的的单个按钮添加一个新的插槽到主窗口?谢谢你的帮助.

lee*_*mes 9

虽然我不知道为什么Netbeans中的QtDesigner不提供此功能,但我知道该功能的用途:它只是在widget类中创建一个带有特殊名称的插槽.需要注意的是它并没有增加一个连接语句.它使用自动连接功能,其工作方式如下:

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

void on_X_Y(...)

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

void on_button_pressed()

如果你想知道这个插槽如何连接到信号:这发生在ui_...h文件末尾setupUi():

    QMetaObject::connectSlotsByName(WidgetName);
Run Code Online (Sandbox Code Playgroud)