【问题标题】:How to select current items in pyqt5 QlistWidget如何在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>

【问题讨论】:

    标签: python qt pyqt5


    【解决方案1】:

    尝试使用:session_name = self.listWidget.currentItem().text()

    【讨论】:

    • 是的,可以,知道如何选择多个并将它们全部打印出来吗?
    • 对不起,我不知道,也许 Qt 的文档可以帮助你(它是为 C++ 编写的,但可以很容易地翻译成 python,因为函数和类的名称是相同的。) QListWidget: doc.qt.io/qt-5/qlistwidget.html
    • 如果您在从 C++ 到 python 的翻译中遇到困难,也许这个问题可以帮助您:stackoverflow.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())
    

    【讨论】:

      猜你喜欢
      • 2021-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-23
      • 2018-08-10
      • 2018-09-13
      • 1970-01-01
      相关资源
      最近更新 更多