如何使用findChildren?

如何使用findChildren?,第1张

如何使用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



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5650168.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存