在《Qt信号和槽函数机制,此篇足矣》一文中已经描述了Qt的信号和槽函数机制,在实际项目开发中,一般会使用QObject下提供的接口函数创建信号和槽函数之间的关联:
但是在Qt Designer中提供了一个快速关联信号和槽函数的方式:使用『转到槽...』对话框创建选定控件之间的信号和槽函数关联。

在点击『转到槽...』选项后,会弹出一个编辑框,例如此处以QPushButton按钮控件为例,则会弹出如下的对话框:

从上图可知,首先QObject和QWidget下的信号是公共的,QAbstractButton是按钮类独有的,Qt使用该类抽象出了按钮的一些公共操作,并已定义好具体的信号。当选中具体信号后,点击“确定”按钮,QtCreator会自动生成一个槽函数,例如,如果选择了clicked()这个信号,则会在代码中生成如下代码,在头文件生成代码如下:
privateslots:
voidon_pushButton_clicked();
在源文件中生成代码如下:

本质上,QtCreator生成代码的成员函数的命名是能够被QMetaObject的自动连接工具识别的,在构建过程中,在uic生成的用于描述界面的C++文件中,会出现以下代码:

因此,通过connectSlotByName()就将名称和槽函数进行了关联,该函数会递归搜索给定对象的所有子对象,并将它们的匹配信号连接到遵循特定格式命名的槽函数,格式如下:
voidon_