Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何编辑标签';在创建它们之后,文本是什么?_Python_Python 3.x_Pyqt4 - Fatal编程技术网

Python 如何编辑标签';在创建它们之后,文本是什么?

Python 如何编辑标签';在创建它们之后,文本是什么?,python,python-3.x,pyqt4,Python,Python 3.x,Pyqt4,我想在创建标签后编辑它的文本,但它给了我一个错误。我到底做错了什么 def __init__(self): super(Window, self).__init__() self.setGeometry(50, 50, 500, 300) self.setWindowTitle("PyQt test!") QtGui.QApplication.setStyle(QtGui.QStyleFactory.create("pla

我想在创建标签后编辑它的文本,但它给了我一个错误。我到底做错了什么

    def __init__(self):
        super(Window, self).__init__()
        self.setGeometry(50, 50, 500, 300)
        self.setWindowTitle("PyQt test!")

        QtGui.QApplication.setStyle(QtGui.QStyleFactory.create("plastique"))

        self.home()
    def home(self):
        btn = QtGui.QPushButton("New game", self)
        btn.clicked.connect(self.change)
        btn.resize(300,25)
        btn.move(100, 175)
        txt = "Welcome to the main menu! (WIP obviously)"

        lbl = QtGui.QLabel(txt, self)
        lbl.resize(400, 100)
        lbl.move(50, 25)
        lbl.setAlignment(QtCore.Qt.AlignCenter)
        self.show()
    def change(self, txt):
        txt = "test"
        self.lbl.setText(txt)
回溯(最近一次呼叫最后一次): 文件“C:\Users\Home\Desktop\开始(PyQt).py”,第47行,更改为 self.lbl.setText(txt)
AttributeError:“窗口”对象没有属性“lbl”


您没有将
lbl
声明为属性。因此,一旦代码离开
home()
方法,它就超出了范围,并且无法获得对对象的引用

self.lbl=lbl
附加到
home()
方法中,如下所示:

lbl = QtGui.QLabel(txt, self)
lbl.resize(400, 100)
lbl.move(50, 25)
lbl.setAlignment(QtCore.Qt.AlignCenter)
self.lbl = lbl

出于好奇,您是否先调用了
home()
并创建了
lbl
?编辑了问题。。。我真的不知道问题是从哪里来的。当我在这里提问时,我通常会发布太多不必要的代码或太少的代码。作为一个新手并不有趣……对每个操作只使用
self.lbl
不是更有意义吗?而不是使用
lbl
然后再使用
self.lbl
?我个人认为它没有那么干净。短变量名还不错,但我不喜欢常量属性访问。