我想实现与 MS Office 2007 中的功能区UI 类似的功能。
我正在使用QPushbutton
和QStacked Widget
。当按下QPushbutton
时,会显示widget
对应的Stacked Widget
。我希望以这样的方式实现:当按下PushButton
时,除非按下其他QPushButton
,否则我们不能再次按下它。
因此,对于我clicked()
的{{1}} SLOT
,我在第一行中称之为QPushButton
。
根据文件:
如果此属性为true,则按下该按钮。信号 如果将此属性设置为,则不会发出pressed()和clicked() 真。
因此,当我在运行时单击它时按钮显示为按下。非常好!但是button->setDown(true);
仍在发出SIGNAL
& pressed()
被发出。
我尝试使用clicked()
和&的不同组合来使用相同的属性。 SIGNAL
的。然而它只是一样。我使用的是Qt 4.8.1。
这里出了什么问题?
谢谢。
答案 0 :(得分:3)
如果要将按钮视觉外观设置为按,可以使用setDown()
功能。文档不是很清楚,但是:
如果此属性为true,则按下该按钮。如果将此属性设置为true,则不会发出press()和clicked()信号。
这并不意味着按下按钮时不会发出信号,但是当您拨打setDown()
>(启用所有按钮后,第二次点击可能只是切换其状态)。
您可以做的是检查isDown()
处理程序中是否按下按钮(clicked()
)。作为替代方案,您可以将按钮更改为可检查(使用setCheckable()
)):第二次单击按钮将“关闭”它(如果这是您需要的行为)。
答案 1 :(得分:0)
将所有按钮设置为可检查,然后阅读