在QT Creator中向插槽发出信号,connect()函数在哪里?

Eug*_*ett 5 qt connect slot qt-signals

在QT Creator的设计模式下,我右键单击小部件并选择“转到插槽”,它会为小部件的信号之一创建一个插槽功能。我以为这会生成一个connect()函数来创建此连接,但是,在任何源代码中都找不到类似的东西。将小部件的信号连接到插槽功能的实际代码在哪里?谢谢

Ste*_*mer 5

如果您使用的是QtCreator设计器,则此.ui文件的输出之一是文件

Qt设计UI文件表单的控件树的XML表示,并进行处理uic,在“用户界面编译器”

Qt的ui格式提供的功能之一是AutoConnect

uic在表单setupUi()功能中自动生成代码以连接信号和插槽。

其工作方式如下:

您的广告位必须符合以下格式:

void on_<object-name>_<signal-name>(<signal-parameters>);
Run Code Online (Sandbox Code Playgroud)

其中object-name是发出此插槽所针对的信号的对象的名称。

稍后,uic然后生成调用QMetaObject::connectSlotsByName(this);

使用Qt的反射系统,找到QObject具有objectName()= 的反射系统,object-name并将其信号连接到您的插槽。