好,我们必须了解的行为
list-of-QObject QObject.findChildren (self, type type, QStringname = QString())。该课程的文档说
返回具有给定名称的该对象的所有子代,可以转换为T类型;如果没有此类对象,则返回一个空列表。省略name参数会使所有对象名称匹配。搜索是递归执行的。
来源
:http :
//pyqt.sourceforge.net/Docs/PyQt4/qobject.html#findChildren
然后,它
list向您返回一个Python ,并且列表中的每个元素都是T类型(您作为输入提供的类型)。所以你的问题是:
TypeError: arguments did not match any overloaded call:QListWidget.addItem(QListWidgetItem): argument 1 has unexpected type‘list’
QListWidget.addItem(QString): argument 1 has unexpected type ‘list’
是因为您传递了一个列表,但
addItem需要使用
QListWidgetItemor或
QString(或Python
str)。如果要传递Python
list,则必须使用
for循环来遍历数据:
myQListWidget = QListWidget()listsItem = ['my', 'data', 'are', 'here', '!']for item in listsItem: myQListWidget.addItem(item)
我发现的另一个问题是您的搜索数据是
QLineEdits,在的任何重载方法中都不支持该类型
QListWidget.addItem()。我认为您无法将其传递给此方法。但是,如果
QLineEdit仅需要每个文本中的“文本”
,则可以将其转换为:
self.studentAdmissionQGridLayout = QGridLayout()...self.myQListWidget = QListWidget()listsMyQLineEdit = self.studentAdmissionQGridLayout.findChildren(QLineEdit)for myQLineEdit in listsMyQLineEdit: self.myQListWidget.addItem(myQLineEdit.text())
这里是帮助理解的参考
QListWidget.addItem():
http://pyqt.sourceforge.net/Docs/PyQt4/qlistwidget.html#addItem
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)