【问题标题】:Turn QPushButton on and off打开和关闭 QPushButton
【发布时间】:2014-06-17 03:23:33
【问题描述】:

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

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

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

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

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

最重要的模式或状态是:

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

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

  3. 开或关(仅适用于切换按钮)。

  4. 默认或正常。对话框中的默认按钮通常可以使用 Enter 或 Return 键。

  5. 是否自动重复。

  6. 是否按下。

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

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

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

【问题讨论】:

    标签: python qt pyqt


    【解决方案1】:

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

    尤其是使用isChecked 来代替isOn

    此外,它还继承自QWidget,它具有isEnabledsetEnabled 方法。有了这个,您可以激活/停用按钮,该按钮显示为灰色按钮以及禁止点击按钮。

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

    【讨论】:

    • 这两个都不是我要找的房产。最后只是调用 button_one.click()
    猜你喜欢
    • 2013-08-29
    • 1970-01-01
    • 2013-05-06
    • 2022-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多