按钮组,解决多个按钮问题

2016-04-09  本文已影响201人  MisakaMikotoSAM

在我们实际设计的时候,很多时候都会用到按钮,如果按钮个数过多,要一个一个写槽函数那是一件很麻烦的事情,外加上,很有可能我们的多个按钮需要互相通信,那么这无疑是更加加剧了编写槽函数的代码量。

所以,为了解决多个按钮问题,我们一般使用按钮组这个类,以方便信号处理。

#include<QButtonGroup>

this->buttonGroup = new QButtonGroup();
this->buttonGroup->addButton(pushButton1);
this->buttonGroup->addButton(pushButton2);
this->buttonGroup->addButton(pushButton3);

这样,我们便将3个按钮加入了按钮组。接下来就是分别处理信号。

void (QButtonGroup::*fun)(QAbstractButton*) = &QButtonGroup::bottonCliked;     
QObject::connect(this->buttonGroup,fun,this,&slot);

/*void MainWindow::slot(QAbstractButton* button)                //来分别处理不同信号
{
        if(button == pushButton1)
        {
              do something;
        }      
        if(button == pushButton2)
        {
              do something;
        }
}*/

由于我们的QButtonGroup这个类中的bottonCliked信号是个重载函数,有两种参数,一个是QAbstractButton,另一个是int,所有我们使用显示函数指针来指定调用信号。

如果,按钮个数太多,要一个一个加入按钮组是一件很痛苦的事情,所以我们可以在设计中完美解决这一切,只需选中多个按钮,然后右键,选择加入按钮组就可以了。

上一篇下一篇

猜你喜欢

热点阅读