【问题标题】:PyQt5 ListWidget add list itemsPyQt5 ListWidget 添加列表项
【发布时间】:2017-07-29 16:23:02
【问题描述】:

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

【问题讨论】:

    标签: python pyqt pyqt5 qlistwidget


    【解决方案1】:

    如果你想添加一个列表,你必须使用函数addItems()。 变化:

    listWidget.addItem(ls)
    

    listWidget.addItems(ls)
    

    【讨论】:

      猜你喜欢
      • 2022-01-06
      • 2014-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-14
      相关资源
      最近更新 更多