QPushbutton可能存在错误?

时间:2013-02-25 12:41:33

标签: c++ qt

我想实现与 MS Office 2007 中的功能区UI 类似的功能。 我正在使用QPushbuttonQStacked 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。 这里出了什么问题? 谢谢。

2 个答案:

答案 0 :(得分:3)

如果要将按钮视觉外观设置为,可以使用setDown()功能。文档不是很清楚,但是:

  

如果此属性为true,则按下该按钮。如果将此属性设置为true,则不会发出press()和clicked()信号。

这并不意味着按下按钮时不会发出信号,但是当您拨打setDown() >(启用所有按钮后,第二次点击可能只是切换其状态)。

您可以做的是检查isDown()处理程序中是否按下按钮(clicked())。作为替代方案,您可以将按钮更改为可检查(使用setCheckable())):第二次单击按钮将“关闭”它(如果这是您需要的行为)。

答案 1 :(得分:0)

将所有按钮设置为可检查,然后阅读

http://qt-project.org/doc/qt-4.8/qbuttongroup.html