• 5967阅读
  • 7回复

[提问]为什么QRadioButton在同一个QGroupBox中可以被同时选中? [复制链接]

上一主题 下一主题
离线呆呆很呆
 
只看楼主 倒序阅读 楼主  发表于: 2013-01-29
关键词: 窗口QGridLayout


窗口失去焦点就会自动取消其中一个的选中 BUG?
  1. QGridLayout *gridLayout = new QGridLayout;
  2. //...
  3.     QGroupBox *searchDirectionGroupBox = new QGroupBox;
  4.     QHBoxLayout *hbox = new QHBoxLayout;
  5.     searchUpRadioButton = new QRadioButton(tr("Upward"));
  6.     searchDownRadioButton = new QRadioButton(tr("Downward"));
  7.     searchDownRadioButton->setChecked(true);
  8.     hbox->addWidget(searchUpRadioButton);
  9.     hbox->addWidget(searchDownRadioButton);
  10.     searchDirectionGroupBox->setLayout(hbox);
  11. //...
  12.     gridLayout->addWidget(searchDirectionGroupBox,1,2,1,2);
  13.     setLayout(gridLayout);


离线tangxunmin

只看该作者 1楼 发表于: 2013-01-31
是可以同时被选中的,如果想互斥的话是要设置的。 不是说直接都放到QGroupBox里就互斥的。

要将按钮放到QButtonGroup里,然后设置QButtonGroup的void    setExclusive ( bool )方法才行。
离线呆呆很呆
只看该作者 2楼 发表于: 2013-02-01
回 1楼(tangxunmin) 的帖子
不是 默认就设置成互斥了 是QDockWidget的BUG QDialog中就没有这个现象
离线tangxunmin

只看该作者 3楼 发表于: 2013-02-01
验证了下  还真是这样!
离线realfan

只看该作者 4楼 发表于: 2013-02-01
用QButtonGroup
    QButtonGroup *grp = new QButtonGroup(this);
    grp->addButton(searchUpRadioButton);
    grp->addButton(searchDownRadioButton);
离线呆呆很呆
只看该作者 5楼 发表于: 2013-02-01
回 4楼(realfan) 的帖子
那就不能添加到QLayout里了
算了 我干脆不用QDockWidget了
离线realfan

只看该作者 6楼 发表于: 2013-02-01
回 5楼(呆呆很呆) 的帖子
这与添加到QLayout没冲突
QButtonGroup是逻辑分组
QLayout是布局管理

你照样可以用hbox->addWidget(searchUpRadioButton);

离线呆呆很呆
只看该作者 7楼 发表于: 2013-02-01
回 6楼(realfan) 的帖子
可是不用QDockWidget就没事这怎么解释?
快速回复
限100 字节
 
上一个 下一个