pycharm运行报粗,明明有这个变量,她楞说没有!


from PySide6.QtWidgets import *
class Window(QMainWindow):
    def __init__(self):
        super().__init__()
        self.resize(60,60)
        self.move(100,100)
        self.qw = QWidget()
        self.setCentralWidget(self.qw)
        self.mylayout = QHBoxLayout()
        self.qw.setLayout(self.mylayout)
        self.btn1 = QRadioButton('button1')
        self.btn1.toggled.connect(lambda :self.btnSlot(self.btn1))
        self.btn1.setChecked(True)
        self.mylayout.addWidget(self.btn1)
        self.btn2 = QRadioButton('button2')
        self.mylayout.addWidget(self.btn2)
        self.btn2.toggled.connect(lambda :self.btnSlot(self.btn2))
        self.btn3 = QRadioButton('button3')
        self.btn3.toggled.connect(l
ambda :self.btnSlot(self.btn3))
        self.mylayout.addWidget(self.btn3)
        self.stb = QStatusBar()
        self.setStatusBar(self.stb)
        self.stb.showMessage('hhh')
        self.setWindowTitle('wocao')
    def btnSlot(self,btn):
        if btn.text() == 'button1':
            self.stb.showMessage('1')
        elif btn.text() == 'button2':
            self.stb.showMessage('2')
        elif btn.text() == 'button3':
            self.stb.showMessage('3')
if __name__ == "__main__":
    app = QApplication()
    win = Window()
    win.show()
    app.exec()

img

有stb这个变量啊,怎么还是报错,程序可以跑啊,这是咋了啊?

你这个 self.stb = QStatusBar() 要写在 self.btn 前面,你在self.btn3的时候调用了下面的btnSlot 方法,而下面方法在运行时还没有self.stb这个属性

你说的有道理,一切正常了,呵呵