程序如下:
import sys
from PyQt4 import QtGui, QtCore
class Example(QtGui.QWidget):
def __init__(self):
super(Example, self).__init__()
self.initUI()
def initUI(self):
self.setGeometry(400, 250, 680, 400)
self.setWindowTitle('Programme')
texte = QtGui.QLabel('On connait :', self)
texte.move(30, 50)
i = QtGui.QCheckBox("i", self)
i.move(30, 70)
i.setToolTip("C'est l'angle d'incidence de l'onde.")
i.stateChanged.connect(self.icoche)
n1 = QtGui.QCheckBox("n1", self)
n1.move(30, 90)
n1.setToolTip("C'est l'indice de réfraction du premier milieu. Il correspond au quotient de la vitesse de la lumière dans ce milieu et de la célérité.")
r = QtGui.QCheckBox("r", self)
r.move(30, 110)
r.setToolTip("C'est l'angle de réfraction de l'onde.")
n2 = QtGui.QCheckBox("n2", self)
n2.move(30, 130)
n2.setToolTip("C'est l'indice de réfraction du second milieu. Il correspond au quotient de la vitesse de la lumière dans ce milieu et de la célérité.")
algo = QtGui.QPushButton("Calculer", self)
algo.resize(algo.sizeHint())
algo.move(30, 160)
algo.setEnabled(False)
vali = QtGui.QLineEdit(self)
vali.move(70, 70)
vali.setEnabled(False)
self.show()
def icoche(self, state):
if state == QtCore.Qt.Checked:
vali.setEnabled(True)
else :
vali.setEnabled(False)
def main():
app = QtGui.QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
但是当我选中i
框时,它返回以下错误:
NameError: global name 'vali' is not defined
我尝试了self.vali
而不是vali
,但它没有改变任何东西。错误在哪里?在
如果上面的答案对你没有帮助。在这段代码中,我只能看到缩进问题。函数与类的缩进不正确。在
class Example(QtGui.QWidget):
之后,所有代码都缺少一个“制表符”,因此函数中的每个self
只能由一个函数识别您需要在整个类中使用self才能将其用作类属性。你拥有它的方式只是在每个功能的范围内,而不是两者。在
相关问题 更多 >
编程相关推荐