在“使用Python和Qt进行快速GUI编程”中,作者在第4章中给出了此示例。
在我看来dial
,spinbox
和layout
将超出范围。为什么我们可以用dial
代替self.dial
,用spinbox
代替self.spinbox
,用layout
代替self.layout
?这是一个好习惯还是对所有GUI元素都使用self.
更好?
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
class Form(QDialog):
def __init__(self, parent=None):
super(Form, self).__init__(parent)
dial = QDial()
dial.setNotchesVisible(True)
spinbox = QSpinBox()
layout = QHBoxLayout()
layout.addWidget(dial)
layout.addWidget(spinbox)
self.setLayout(layout)
self.connect(dial, SIGNAL("valueChanged(int)"),
spinbox.setValue)
self.connect(spinbox, SIGNAL("valueChanged(int)"),
dial.setValue)
self.setWindowTitle("Signals and Slots")
app = QApplication(sys.argv)
form = Form()
form.show()
app.exec_()
答案 0 :(得分:1)
是的,这些变量超出了范围。
但是,由于存在对基础对象的引用(通过layout和self.setLayout),这并不是真正的问题,即,小部件/对象没有被破坏。
如果您不需要直接在代码的其他部分中访问它们,那么就很好了。