加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – Qt,PushButton,id属性?任何方式知道点击了哪个按钮

发布时间:2020-12-16 06:02:38 所属栏目:百科 来源:网络整理
导读:void MainWindow::addRadioToUI(){ int button_cunter=4; while(!database.isEmpty()) { button_cunter++; QPushButton *one = new QPushButton("Play: "+name(get_r.getTrackId())); one-setIcon(QIcon(":/images/play_button.png")); one-setMaximumWidth(
void MainWindow::addRadioToUI()
{       int button_cunter=4;
        while(!database.isEmpty())
        {       button_cunter++;

                QPushButton *one = new QPushButton("Play: "+name(get_r.getTrackId()));
                one->setIcon(QIcon(":/images/play_button.png"));
                one->setMaximumWidth(140);
                one->setFlat(true);

                QGroupBox* get_rGB = new QGroupBox("somethink"); 
                QFormLayout* layout = new QFormLayout; 
                if(button_cunter%5 == 0){
                    layout->addWidget(one);

                }

                get_rGB->setLayout(layout);
                scrollAreaWidgetContents->layout()->addWidget(get_rGB);

        }
}

我有几个自动添加的QPushButtons.
有没有办法在按钮上添加“id属性或者其他”,然后知道点击了哪个按钮?我对每个按钮都有不同的动作.

解决方法

QApplication提供sender(),其中包含发送信号的对象.所以你可以这样做:
//slot,this could also be done in a switch
if(button[X] == QApplication::sender()){
  doX();
}else if(button[Y] == QApplication::sender()){
  doY();
}

http://doc.qt.io/qt-4.8/qobject.html#sender

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读