如何在pyqt5 QlistWidget中选择当前项目
Posted
技术标签:
【中文标题】如何在pyqt5 QlistWidget中选择当前项目【英文标题】:How to select current items in pyqt5 QlistWidget 【发布时间】:2021-09-22 08:54:00 【问题描述】:我正在使用 qt 设计器并从数据库中填充了一个 qlistwidget。我希望能够从列表中进行选择,目前只需将其打印出来。我正在使用 currentItem 方法,但它没有返回字符串。它只返回内存位置。我不明白如何让它正常工作。
session_name_=str(self.listWidget.currentItem())
addendant_=self.listWidget_2.currentRow()
scheduled_=self.dateTimeEdit.dateTime()
sched=scheduled_.toString("MM/dd/yyyy h:mm ap")
print(session_name_)
返回
<PyQt5.QtWidgets.QListWidgetItem object at 0x7fe5050bccd0>
【问题讨论】:
【参考方案1】:尝试使用:session_name = self.listWidget.currentItem().text()
【讨论】:
是的,可以,知道如何选择多个并将它们全部打印出来吗? 对不起,我不知道,也许 Qt 的文档可以帮助你(它是为 C++ 编写的,但可以很容易地翻译成 python,因为函数和类的名称是相同的。) QListWidget: doc.qt.io/qt-5/qlistwidget.html 如果您在从 C++ 到 python 的翻译中遇到困难,也许这个问题可以帮助您:***.com/questions/60422323/… 好的,谢谢我一直在查看这些文档,不幸的是我没有足够的经验来知道如何管理它,我没有在文档中看到可以使用 .text 的选项任何一个。我需要更多的经验和时间来使用这个框架 如果您需要获取所有选定的项目,您应该在问题中指定它。由于返回的是 QListWidgetItem,因此您需要查看它的documentation。考虑到虽然 Qt 文档是针对 C++ 的,但 PyQt/PySide 中 99% 的函数和返回值是相同的。【参考方案2】:如果你需要获取所有选中的项目,你必须使用视图的selectionModel()
。 selectedIndexes()
返回未排序的唯一 QModelIndexes 列表:
selection = self.listWidget.selectionModel()
indexes = sorted(selection.selectedIndexes(), key=lambda i: i.row())
for index in indexes:
print(index.data())
【讨论】:
以上是关于如何在pyqt5 QlistWidget中选择当前项目的主要内容,如果未能解决你的问题,请参考以下文章
PyQt5 中 QListWidget 怎么获取 item 中 combox 的当前显示的值
PyQt5:当列表失去焦点时设置 QListWidget 选择颜色
如何在 PyQt5 中返回 QlistWidget 中项目的值