Qt信号和槽自动关联

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

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

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

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

发布了123 篇原创文章 · 获赞 133 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/baidu_33879812/article/details/102840050