htmlradio设置默认的按钮qt单选按钮的分组与不分组
“同⼀个⽗窗体”或“⼀个button group”,这就是分组。如果没有进⾏分组,则默认拥有相同⽗窗体的radio buttons都将具有相互排他性,所以如果你想在⼀个窗体中表达多组radio buttons的效果,需要显式地对它们进⾏分组,可以使⽤QGroupBox或者QButtonGroup。建议使⽤QButtonGroup,因为它仅仅是⼀个容器,不会有任何视觉表现,并且对于包含在它⾥⾯的⼦
buttons,QButtonGroup提供⽐QGroupBox⽅便的信号槽操作。
显⽰分组⽰例:Dlg.cpp
mRadioGroup_1 = new QButtonGroup(this);
mRadioGroup_1->addButton(ui.radioButton);
mRadioGroup_1->addButton(ui.radioButton_2);
mRadioGroup_2 = new QButtonGroup(this);
mRadioGroup_2->addButton(ui.radioButton_3);
mRadioGroup_2->addButton(ui.radioButton_4);
autoExclusive的bool型属性,它是QAbstractButton类的属性,该属性⽤于控制⼀个button是否具有排他性(auto-exclusivity)
如果autoExclusive为true,属于同⼀个⽗窗体的所有checkable按钮的⾏为将表现得与它们被放在⼀个exclusive的button group中⼀样,任何时刻都只能有⼀个按钮处于checked状态。不过别担⼼, autoExclusive属性的缺省值为false(除了QRadioButton)。
还要注意的是,如果buttons已经放在了⼀个button group,那么autoExclusive属性将失效。
QButtonGroup默认是exclusive的,所以只要它的组内的所有buttons是checkable的,不管是不是QRadioButton,都将表现得与QRadioButton⼀样。最后如果你创建了⼀个exclusive的button group,最好为它设置⼀个初选项,否则组内将没有任何⼀个button被选中,如图所⽰,将没有分组的两个按钮的autoExclusive前⾯的勾去掉,则不会被强制排他性
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论