打开和关闭QPushButton

时间:2014-06-16 18:54:44

标签: python qt pyqt

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

我将按钮的clicked()信号链接到相应的方法。我的问题是还有其他方法来改变模式(例如,加载设置会自动将用户移动到默认模式),并且我使用QPushButtons作为"活动模式的指示符" 。这是先前通过为每个按钮设置两个图标来实现的,一个用于按钮关闭而另一个用于按钮打开。它全都是在QtDesigner中设计的,所以点击一个按钮就可以打开它(并关闭其他按钮)并适当地更改图标。释放鼠标时,该按钮保持打开状态。

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

我试图找出如何更改" on"到"关"没有用户实际按下按钮,所以我可以适当地改变模式。

Qt文档引用了我正在寻找的属性,但我找不到比这些状态存在的更多细节:

  

最重要的模式或状态是:

     
      
  1. 是否可用(灰显,禁用)。

  2.   
  3. 标准按钮,切换按钮或菜单按钮。

  4.   
  5. 开启或关闭(仅适用于切换按钮)。

  6.   
  7. 默认或正常。通常可以点击对话框中的默认按钮"使用   输入或返回键。

  8.   
  9. 是否自动重复。

  10.   
  11. 是否按下。

  12.   

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

更具体地说,我正在寻找一种方法来查看QPushButton的状态;看是否是" On"或者"关闭",我正在寻找改变这种状态的方法。

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

1 个答案:

答案 0 :(得分:2)

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

尤其代替isOn使用isChecked

此外,它还继承自QWidget,其中包含方法isEnabledsetEnabled。使用此功能,您可以通过显示按钮以及禁止点击按钮来激活/取消激活按钮。

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