默认状况下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.