默认情况下checkable
是不选中的,Button
默认为触发按钮(trigger button
),按下去马上弹起来。选中checkable
后,Button
变成切换按钮(toggle button
),可以有两种状态,即按下和弹起。此时该按钮可以发射toggled(bool)
信号,与槽函数setVisible(bool)
结合,即可用于控件交替显示。
下图中两个more
按钮,上边是弹起状态,下边是按下状态:
问题:I have the follwing code where moreButton is a QPushButton
. When I toggle the button, nothing happens. Shouldn’t it show or hide secondaryGroupBox
and tertiaryGroupBox
?
QObject::connect ( moreButton, SIGNAL ( toggled ( bool ) ), secondaryGroupBox, SLOT ( setVisible ( bool ) ) );
QObject::connect ( moreButton, SIGNAL ( toggled ( bool ) ), tertiaryGroupBox, SLOT ( setVisible ( bool ) ) );
回答:Most likely, your pushbutton is not checkable. Try moreButton->setCheckable(true)
, a non-checkable
button never emits the toggled(bool)
signal.