我在PyQt中有一个应用程序,有几个按钮可以在应用程序的模式之间切换。
我将按钮的clicked()信号链接到相应的方法。我的问题是还有其他方法来改变模式(例如,加载设置会自动将用户移动到默认模式),并且我使用QPushButtons作为"活动模式的指示符" 。这是先前通过为每个按钮设置两个图标来实现的,一个用于按钮关闭而另一个用于按钮打开。它全都是在QtDesigner中设计的,所以点击一个按钮就可以打开它(并关闭其他按钮)并适当地更改图标。释放鼠标时,该按钮保持打开状态。
按钮保持打开状态,直到按下另一个按钮。
我试图找出如何更改" on"到"关"没有用户实际按下按钮,所以我可以适当地改变模式。
Qt文档引用了我正在寻找的属性,但我找不到比这些状态存在的更多细节:
最重要的模式或状态是:
是否可用(灰显,禁用)。
标准按钮,切换按钮或菜单按钮。
开启或关闭(仅适用于切换按钮)。
默认或正常。通常可以点击对话框中的默认按钮"使用 输入或返回键。
是否自动重复。
- 醇>
是否按下。
(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
答案 0 :(得分:2)
QPushButton
继承自QAbstractButton
,因此具有以下方法:isChecked
,setChecked
和isCheckable
,setCheckable
。这样,您可以将按钮转换为切换按钮并询问/设置状态。还有setAutoRepeat
和autoRepeat
以编程方式控制自动重复。
尤其代替isOn
使用isChecked
。
此外,它还继承自QWidget
,其中包含方法isEnabled
和setEnabled
。使用此功能,您可以通过显示按钮以及禁止点击按钮来激活/取消激活按钮。
基本上只需研究QAbstractButton和QWidget的文档,了解如何以编程方式与QPushButton进行交互以启用/禁用它。