QT开发中文网

不行啊 是不是因为我设置了checkable

是的,如果您将QPushButton的checkable属性设置为true,那么按钮就可以被选择(checked)和取消选择。要确保一次只能选择一个按钮,您可以采用以下方法:

  1. 使用QButtonGroup来管理按钮:
#include <QtWidgets>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    QWidget window;
    QVBoxLayout layout(&window);
    
    QButtonGroup buttonGroup;

    QPushButton button1("Button 1");
    QPushButton button2("Button 2");
    QPushButton button3("Button 3");

    // 设置按钮为可选中状态
    button1.setCheckable(true);
    button2.setCheckable(true);
    button3.setCheckable(true);
    
    layout.addWidget(&button1);
    layout.addWidget(&button2);
    layout.addWidget(&button3);

     // 连接槽函数以响应按钮点击事件
     QObject::connect(&buttonGroup, static_cast<void(QButtonGroup::*)(int)>(&QButtonGroup::buttonClicked),
                      [&](int id){
                          qDebug() << "Clicked: " << id;
                      });

     // 将按钮添加到按钮组
     buttonGroup.addButton(&button1, 1); // 第二个参数表示唯一的ID
     buttonGroup.addButton(&button2, 2);
     buttonGroup.addButton(&button3, 3);

     window.show();

     return app.exec();
}

在上述代码中,我们使用了setCheckable(true)方法将QPushButton的checkable属性设置为true,并将它们添加到QVBoxLayout布局中。然后,我们通过addButton()方法将这些按钮添加到QButtonGroup中,并为每个按钮分配唯一的ID。当用户选择任何一个按钮时,与buttonClicked()信号连接的槽函数将被触发,并输出所选按钮的ID。

通过使用QButtonGroup管理带有checkable属性的QPushButton,您可以实现一次只能选择一个按钮的效果。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://qt.0voice.com/?id=8807

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?