栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何使用findChildren?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何使用findChildren?

好,我们必须了解的行为

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
需要使用
QListWidgetItem
or或
QString
(或Python
str
)。如果要传递Python
list
,则必须使用
for
循环来遍历数据:

myQListWidget = QListWidget()listsItem = ['my', 'data', 'are', 'here', '!']for item in listsItem:    myQListWidget.addItem(item)

我发现的另一个问题是您的搜索数据是

QLineEdit
s,在的任何重载方法中都不支持该类型
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



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/647973.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号