我正在构建一个应用程序,其中一个复选框连接到一个按钮,只有当复选框被标记时才会激活该按钮。我有在initUI函数中定义的按钮和复选框,我已经创建了一个按钮隐藏功能,它已连接到我的复选框,但我不断收到错误'qbtn'(我的按钮)未定义。我该怎么办?
initUI:
def initUI(self):
# Add push button
qbtn = QtGui.QPushButton('Quit', self)
#connect to button press
qbtn.clicked.connect(self.ButtonPress)
qbtn.resize(qbtn.sizeHint())
qbtn.move(50, 50)
#Add Check Box
cb = QtGui.QCheckBox('Agree', self)
cb.move(20, 20)
cb.toggle()
cb.stateChanged.connect(self.ButtonHide)
ButtonHide:
def ButtonHide(self, state):
if state == QtCore.Qt.Checked:
qbtn.setEnabled(True)
else:
qbtn.setEnabled(False)
错误讯息:
File "<wingdb_compile>", line 46, in ButtonHide
NameError: global name 'qbtn' is not defined
Traceback (most recent call last):
谢谢!
答案 0 :(得分:0)
您应该存储对父容器中的UI元素的引用,
self.qbtn = QtGui.QPushButton('Quit', self)
...
self.cb = QtGui.QCheckBox('Agree', self)
然后在ButtonHide
中引用self.qbtn
。