PyQt5 ListWidget 添加列表项
PyQt5 ListWidget add list items
在学习 PyQt5 时,我在 ListWidget 小部件(以及所有其他小部件)中发现了一个小问题(可能是一个错误)
ListWidget
重载了一个 addItem
方法:
(代码在 c++ 中,但这与 pyqt 中的界面相同)
void addItem(const QString &label)
void addItem(QListWidgetItem *item)
void addItems(const QStringList &labels)
所以问题是在 PyQt5 中没有更多的 QStringList
类型,我应该使用一个简单的字符串列表而不是 QStringList
但是当我收到错误提示我没有方法匹配给定的参数时:
Traceback (most recent call last):
File "main.py", line 21, in <module>
listWidget.addItem(ls)
TypeError: arguments did not match any overloaded call:
addItem(self, QListWidgetItem): argument 1 has unexpected type 'list'
addItem(self, str): argument 1 has unexpected type 'list'
这是我的代码:
from PyQt5 import QtGui, QtCore, QtWidgets
from PyQt5.QtWidgets import *
import sys
if __name__ == '__main__':
app = QApplication(sys.argv)
listWidget = QListWidget()
listWidget.show()
ls = ['test', 'test2', 'test3']
listWidget.addItem('test')
listWidget.addItem('test2')
listWidget.addItem('test3')
listWidget.addItem(ls)
sys.exit(app.exec_())
如果要添加列表,必须使用函数 addItems()
。
变化:
listWidget.addItem(ls)
到
listWidget.addItems(ls)
在学习 PyQt5 时,我在 ListWidget 小部件(以及所有其他小部件)中发现了一个小问题(可能是一个错误)
ListWidget
重载了一个 addItem
方法:
(代码在 c++ 中,但这与 pyqt 中的界面相同)
void addItem(const QString &label)
void addItem(QListWidgetItem *item)
void addItems(const QStringList &labels)
所以问题是在 PyQt5 中没有更多的 QStringList
类型,我应该使用一个简单的字符串列表而不是 QStringList
但是当我收到错误提示我没有方法匹配给定的参数时:
Traceback (most recent call last):
File "main.py", line 21, in <module>
listWidget.addItem(ls)
TypeError: arguments did not match any overloaded call:
addItem(self, QListWidgetItem): argument 1 has unexpected type 'list'
addItem(self, str): argument 1 has unexpected type 'list'
这是我的代码:
from PyQt5 import QtGui, QtCore, QtWidgets
from PyQt5.QtWidgets import *
import sys
if __name__ == '__main__':
app = QApplication(sys.argv)
listWidget = QListWidget()
listWidget.show()
ls = ['test', 'test2', 'test3']
listWidget.addItem('test')
listWidget.addItem('test2')
listWidget.addItem('test3')
listWidget.addItem(ls)
sys.exit(app.exec_())
如果要添加列表,必须使用函数 addItems()
。
变化:
listWidget.addItem(ls)
到
listWidget.addItems(ls)