在 pySide2 中按下按钮时如何将项目添加到 QListWidget?

How to add item to QListWidget when press a button in pySide2?

我尝试 google 它但没有答案,看起来 QListWidget 不是动态模块

这是我的代码:

        listwidget = QtWidgets.QListWidget()
        for a in range (0,3):
            listwidget.addItem(str(a))

        button_layout = QHBoxLayout()
        self.buttfind = QPushButton('Find')
        self.buttfind.clicked.connect(self.find)
        self.buttmerge = QPushButton('Merge')
        self.buttmerge.clicked.connect(self.merge)
        button_layout.addWidget(self.buttfind)
        button_layout.addWidget(self.buttmerge)

        main_layout.addWidget(listwidget)
        main_layout.addLayout(button_layout)
        self.setLayout(main_layout)

    def merge(self):
        print('a')
        listwidget.addItem(str('asd'))


我在以下位置遇到问题:

    def merge(self):
        print('a')
        listwidget.addItem(str('asd'))

错误: listwidget.addItem(str('asd')) NameError:名称 'listwidget' 未定义

listwidget 只有函数作用域,因此变量引用在第一个函数结束时丢失。

listwidget 更改为 self.listwidget 将赋予变量实例范围。