QT Creator 中的 Slot 信号,connect() 函数在哪里?
Posted
技术标签:
【中文标题】QT Creator 中的 Slot 信号,connect() 函数在哪里?【英文标题】:Signal to Slot in QT Creator, where is connect() function? 【发布时间】:2017-05-11 14:20:32 【问题描述】:在 QT Creator 的设计模式中,我右键单击一个小部件并选择“转到插槽”,它会为小部件的信号之一创建一个插槽函数。
我原以为这会生成一个connect()
函数来创建此连接,但是,我在任何源代码中都找不到类似的东西。
将小部件的信号连接到槽函数的实际代码在哪里?
谢谢
【问题讨论】:
【参考方案1】:如果您使用的是 QtCreator 的设计器,则其中一个输出是 .ui
文件
Qt Designer ui 文件是表单小部件树的 XML 表示,由 “用户界面编译器”uic
处理
Qt 的 ui 格式提供的功能之一是AutoConnect。
uic
自动在表单的setupUi()
函数中生成代码来连接您的信号和插槽。
其工作方式如下:
您的广告位必须符合以下格式:
void on_<object-name>_<signal-name>(<signal-parameters>);
其中object-name
是发出此插槽所针对的信号的对象的名称。
稍后,uic
会生成调用 QMetaObject::connectSlotsByName(this);
的代码
使用Qt的反射系统,找到QObject
,其中objectName()
=object-name
,并将其信号连接到您的插槽。
【讨论】:
以上是关于QT Creator 中的 Slot 信号,connect() 函数在哪里?的主要内容,如果未能解决你的问题,请参考以下文章