QT中识别多个按钮

来源:互联网 发布:知乎 被扒皮 编辑:程序博客网 时间:2024/05/29 04:07

1.创建多个按钮:

    DO1Button = new QPushButton(tr("DO 1"));
    DO2Button = new QPushButton(tr("DO 2"));
    DO3Button = new QPushButton(tr("DO 3"));
    DO4Button = new QPushButton(tr("DO 4"));
    DO5Button = new QPushButton(tr("DO 5"));
    DO6Button = new QPushButton(tr("DO 6"));
    DO7Button = new QPushButton(tr("DO 7"));
    DO8Button = new QPushButton(tr("DO 8"));
2.添加对象名称:

    DO1Button->setObjectName("DO 1");
    DO2Button->setObjectName("DO 2");
    DO3Button->setObjectName("DO 3");
    DO4Button->setObjectName("DO 4");
    DO5Button->setObjectName("DO 5");
    DO6Button->setObjectName("DO 6");
    DO7Button->setObjectName("DO 7");
    DO8Button->setObjectName("DO 8");
3.连接槽函数
    connect(DO1Button, SIGNAL(clicked()), this, SLOT(channelValueSetDiModeButtonClick()));
    connect(DO2Button, SIGNAL(clicked()), this, SLOT(channelValueSetDiModeButtonClick()));
    connect(DO3Button, SIGNAL(clicked()), this, SLOT(channelValueSetDiModeButtonClick()));
    connect(DO4Button, SIGNAL(clicked()), this, SLOT(channelValueSetDiModeButtonClick()));
    connect(DO5Button, SIGNAL(clicked()), this, SLOT(channelValueSetDiModeButtonClick()));
    connect(DO6Button, SIGNAL(clicked()), this, SLOT(channelValueSetDiModeButtonClick()));
    connect(DO7Button, SIGNAL(clicked()), this, SLOT(channelValueSetDiModeButtonClick()));
    connect(DO8Button, SIGNAL(clicked()), this, SLOT(channelValueSetDiModeButtonClick()));
4.对应加入List
    DODispButtonList.append(DO1DispButton);
    DODispButtonList.append(DO2DispButton);
    DODispButtonList.append(DO3DispButton);
    DODispButtonList.append(DO4DispButton);
    DODispButtonList.append(DO5DispButton);
    DODispButtonList.append(DO6DispButton);
    DODispButtonList.append(DO7DispButton);
    DODispButtonList.append(DO8DispButton);
5.在槽函数里面对按钮进行区分设置风格(一个槽函数响应多个按钮,在同一个槽函数里面利用objectName再分开哪个按钮):
    QPushButton* btn = qobject_cast<QPushButton*>(sender());    if("DO 1" == btn->objectName())    {        setChannelValue(0);    }
    DODispButtonList[i]->setStyleSheet("background-color:blue");

原创粉丝点击