PyQt5 QListWidget调用currentItem()如何获取选中项文本而非内存地址
问题原因
QListWidget.currentItem() 方法返回的是QListWidgetItem类的实例对象,而非列表项展示的文本内容,直接对对象做字符串强制转换,只会输出对象的类名和内存地址,也就是你看到的<PyQt5.QtWidgets.QListWidgetItem object at 0x7fe5050bccd0>输出。
解决方法
你需要调用QListWidgetItem实例的text()方法,即可获取到列表项对应的显示字符串,修改后的代码如下:
# 先获取选中的item对象,再调用text方法取文本 session_name_ = self.listWidget.currentItem().text() addendant_=self.listWidget_2.currentRow() scheduled_=self.dateTimeEdit.dateTime() sched=scheduled_.toString("MM/dd/yyyy h:mm ap") print(session_name_)
优化建议
为了避免没有选中任何列表项时,currentItem()返回None调用text()触发崩溃,建议增加判空逻辑:
current_item = self.listWidget.currentItem() if current_item: session_name_ = current_item.text() addendant_=self.listWidget_2.currentRow() scheduled_=self.dateTimeEdit.dateTime() sched=scheduled_.toString("MM/dd/yyyy h:mm ap") print(session_name_) else: print("请先选中对应的会话项")
内容的提问来源于stack exchange,提问作者codereber
相关产品推荐
相关产品推荐

