python - PyQt5 ListWidget 添加列表项

标签 python pyqt pyqt5 qlistwidget

在学习 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)

关于python - PyQt5 ListWidget 添加列表项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42682544/

相关文章:

python - gpiozero.exc.PinPWM不支持 : PWM is not supported on pin GPIO7 (Raspberry Pi 4B)

python - 以 10 为基数的 int() 的文字无效 : 'n'

python - 未绑定(bind)本地错误: local variable referenced before assignment

python - 如何调整 QLabels 的大小以适合 QScrollArea 中的内容

python - 谁删除了python中的内存?

python - PyQt5 setText 按对象名称?

python - Pyqt5 qthread + 信号不工作 + gui 卡住

python - FileDialog 显示 Python3 与 QML 的不同界面

python - 属性错误: 'QScatterSeries' object has no attribute 'points'

python - Matplotlib 'key_press_event' 没有响应