Qt信号和槽自动关联

mac2024-05-24  47

     想要使得信号和槽自动关联,省去自己写connect函数需要以下这么做:

规定的格式写槽函数,函数名格式:字符串on部件的objectName信号名称3部分。中间用下划线隔开,例如pushButton的按下槽:on_pushButton_clicked()。使用这个槽且定义槽的类(包含相关的头文件,如<QPushButton>),构造函数中添加 Mainwindow::Mainwindow(QObject *parent = nullptr) { QPushButton *button = new QPushButton(this);    button->setObjectName("myButton") ui->setUi(this); }

       这里需要注意的是:设置自动关联的部件一定写在ui->setUi(this);之前,因为setUi()函数中调用了connectSlotsByName()函数,这个函数的作用就是用来自动关联的。(这也是自动关联简单,但是使用的少的原因)

       如果牵涉到多个信号到一个槽的情况,则需要使用QSignalMapper类进行信号映射。

最新回复(0)