c++ - Qt、按钮、id 属性?任何知道点击哪个按钮的方法

标签 c++ qt attributes

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);

        }
}

我有几个自动添加的 QPushButton。 有没有办法向按钮添加“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

关于c++ - Qt、按钮、id 属性?任何知道点击哪个按钮的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8692735/

相关文章:

c++ - 为什么通过 weak_ptr 调用这么慢?

c++ - QT编译错误

php - 在 php 中获取 xml 命名空间属性

qt - 从 QStringList 复制到文本文件

java - 有没有办法多次迭代 HttpServletRequest.getAttributeNames() ?

sockets - 有人可以解释一下 "from socket import example"和 "import socket"之间的区别吗?

c++ - 在 C++ 中进行类型转换的简短而优雅的方法?

c++ - 如何从一个数组中提取零并将非零部分保存到另一个数组?

c++ - 如何高效读取 COleSafeArray

QToolTip 背景颜色不会被边框半径剪裁