美文网首页
按钮组,解决多个按钮问题

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

作者: MisakaMikotoSAM | 来源:发表于2016-04-09 18:26 被阅读201次

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

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

    #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,所有我们使用显示函数指针来指定调用信号。

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

    相关文章

      网友评论

          本文标题:按钮组,解决多个按钮问题

          本文链接:https://www.haomeiwen.com/subject/tskblttx.html