python - 在pySide2中按下按钮时如何将项目添加到QListWidget?
问题描述
我尝试用谷歌搜索但没有答案,看起来 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: name 'listwidget' is not defined
解决方案
listwidget
仅具有函数范围,因此变量引用在第一个函数结束时丢失。
更改listwidget
为self.listwidget
将赋予变量实例范围。
推荐阅读
- reactjs - 使用 Authentication 标头的基于令牌的身份验证给出 403 禁止错误
- php - 如何绕过在奇怪时区拥有 mySQL 数据库的主机
- r - kernelUD 中的错误:xy 应在二维中定义
- python - 如何根据 PyQt5 中的 Contents 获取框架的最小尺寸/固定尺寸?
- svm - 理解 Python 的 roc_curve、svm 例子
- excel - 将单元格的列值分配给变量时出现“应用程序或对象定义错误”
- javascript - 在哪里定义 javascript 函数 html/js
- python-3.x - 在泛型类中调用类型参数的构造函数
- vue.js - 具有多维ajax数据行跨度的ant design vue表
- python - 简单的 matplotlib 问题 - 变量不起作用