所以我一直在尝试使用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_())
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)