eclipse - Python3 PyQt4 创建一个简单的 QCheckBox 并更改 bool 变量

标签 eclipse python-3.x pyqt4 windows-7-x64 qcheckbox

所以我一直在尝试使用Python 3.3和PyQt4编写一个GUI。我已经完成了一些教程,但我仍然无法弄清楚如何让复选框检查和取消检查全局变量中的触发器更改。我无法让它触发任何与此相关的事情,因为所有教程都使用对我不起作用的方法。

该程序太大,无法整体复制,因此我将围绕复选框的程序的基本结构放在一起

import sys
from PyQt4 import QtGui, QtCore

ILCheck = False

class SelectionWindow(QtGui.QWidget):
    def __init__(self, parent=None):
        super(SelectionWindow, self).__init__(parent)

        ILCheckbox = QtGui.QCheckBox(self)
        ILCheckbox.setCheckState(QtCore.Qt.Unchecked)

        MainLayout = QtGui.QGridLayout()
        MainLayout.addWidget(ILCheckbox, 0, 0, 1, 1)
        self.setLayout(MainLayout)

这就是我被困住的地方。我想要做的是,如果选中了 ILCheckbox,则将 ILCheck 的状态更改为 True,如果未选中,则将其更改回 False。我花了一整天的时间来研究这个问题,但所有教程都没有多大帮助。

最佳答案

当其状态更改时,复选框会发出 stateChanged 事件(真的!)。将其连接到事件处理程序:

import sys

from PyQt4.QtGui import *
from PyQt4.QtCore import *

class SelectionWindow(QMainWindow):
    def __init__(self, parent=None):
        super().__init__(parent)

        self.ILCheck = False

        ILCheckbox = QCheckBox(self)
        ILCheckbox.setCheckState(Qt.Unchecked)

        ILCheckbox.stateChanged.connect(self.ILCheckbox_changed)

        MainLayout = QGridLayout()
        MainLayout.addWidget(ILCheckbox, 0, 0, 1, 1)

        self.setLayout(MainLayout)

    def ILCheckbox_changed(self, state):
        self.ILCheck = (state == Qt.Checked)

        print(self.ILCheck)


if __name__ == '__main__':
  app = QApplication(sys.argv)
  window = SelectionWindow()

  window.show()
  sys.exit(app.exec_())

关于eclipse - Python3 PyQt4 创建一个简单的 QCheckBox 并更改 bool 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12736825/

相关文章:

java - 如何使用 SWTBot 获取向导描述?

eclipse - 关于在 Eclipse 中启动 webOS 模拟器的一些新手问题

PHP调试preg-replace回调函数

java - Gradle 子项目 jar 并添加到 Eclipse 引用的库

python - Qt - 在 Python 中保留小部件的引用

python-3.x - 如何在 Windows 中通过 LDAP 将 Python 3.x cx_Oracle 连接到 Oracle DB?

python - 尝试使用来自 networkx 的 percolation_centrality

python - 来自 statsmodels.formula.api 使用 Python 的交互图

python - 如何在 PyQt4 中杀死单发 QtCore.QTimer?

python - 如何为pyqt项目创建windows安装程序