connectSlotByName()
在使用form的时候,某些情况下,即使在cpp文件中,我们没有使用connect函数链接,也可以通过信号触发槽函数。之前一直不解,直到某一天,我打开了ui自动生成的头文件,发现如下一行代码:
QMetaObject::connectSlotByName(QObject)
这行代码的作用很简单,就是通过按照对象名进行信号和槽函数的关联,具体规则如下:
-
槽函数必须命名为如下格式:
void on_对象名_信号()例如:
void on_button_cliecked()
这样我们就可以不用写connect函数来连接信号和槽了!但是需要注意的是:
1、尽量不要出现相同的对象名
2、如果同名,connectSlotsByName只会给其中一个建立缺省的信号槽的连接
在Qt编程中,通过`QMetaObject::connectSlotsByName(QObject)`可以实现信号与槽的自动关联。只要槽函数遵循`void on_对象名_信号()`的命名规则,如`void on_button_clicked()`, 就能在不显式调用`connect`函数的情况下,让信号自动触发相应的槽。但需注意避免对象名重复,因为connectSlotsByName只会为第一个找到的对象建立默认的信号槽连接。
3240

被折叠的 条评论
为什么被折叠?



