我在PyQt中有一个带有几个按钮的应用程序,可以在应用程序的模式之间切换。

我有链接到适当方法的按钮的clicked()信号。我的问题是,还有其他方法可以更改模式(例如,加载设置会自动将用户移动到其默认模式),并且我使用QPushButtons作为“活动模式”的指示器。以前,每个按钮都有两个图标,一个按钮处于关闭状态,另一个按钮处于打开状态,从而实现了此目的。它都是在QtDesigner中设计的,因此单击一个按钮可以将其打开(然后关闭其他按钮)并适当地更改图标。释放鼠标后,该按钮将保持打开状态。

该按钮保持打开状态,直到按下另一个按钮。

我试图弄清楚如何在用户不实际按下按钮的情况下将按钮从“打开”更改为“关闭”,以便我可以适当地更改模式。

Qt文档引用了我正在寻找的属性,但是除了这些状态存在的事实之外,我找不到更多的详细信息:


  最重要的模式或状态是:
  
  
  是否可用(显示为灰色,已禁用)。
  标准按钮,切换按钮或菜单按钮。
  开启或关闭(仅用于切换按钮)。
  默认或正常。对话框中的默认按钮通常可以使用
  输入或返回键。
  是否自动重复。
  是否按下。
  


http://qt-project.org/doc/qt-5/QPushButton.html

更具体地说,我正在寻找一种查看QPushButton的状态的方法。看看它是“开”还是“关”,我正在寻找一种更改状态的方法。

编辑:我找到了适当的方法QPushButton.isOn(),但问题是它在Qt3中。 (我使用的是Qt5,此方法不再存在)。显然现在已经过时了,会有人碰巧知道是什么取代了它吗?
http://doc.qt.digia.com/3.2/qpushbutton.html#isOn

最佳答案

QPushButton继承自QAbstractButton,因此具有以下方法:isCheckedsetCheckedisCheckablesetCheckable。这样,您可以将按钮转换为切换按钮并询问/设置状态。还有setAutoRepeatautoRepeat以编程方式控制自动重复。

特别是代替isOn使用isChecked

此外,它还继承自具有方法QWidgetisEnabledsetEnabled。使用此按钮,您可以激活/停用按钮,该按钮通过使按钮变灰以及禁止单击按钮来显示。

基本上,只需研究QAbstractButtonQWidget的文档,以了解如何通过编程方式与QPushButton交互以启用/禁用它。

关于python - 打开和关闭QPushButton,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24250292/

10-12 23:16