首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pyqt QtGui.QListWidget.currentItem(QtGui.QListWidget())始终为None

pyqt QtGui.QListWidget.currentItem(QtGui.QListWidget())始终为None
EN

Stack Overflow用户
提问于 2011-04-18 20:03:29
回答 1查看 8.7K关注 0票数 1

我有我的应用程序中的QListWidget,我需要从QListWidget获取项目的字符串值,用户已双击(激活的项目)。

代码语言:javascript
复制
QtCore.QObject.connect(self.ui.listWidget, QtCore.SIGNAL("itemActivated (QListWidgetItem *)"), self.cas_dialog_spust)

def cas_dialog_spust(self):
    predmet = QtGui.QListWidget.currentItem(QtGui.QListWidget())
    print(predmet)
    strpredmet = QtGui.QListWidgetItem.text(QtGui.QListWidgetItem(predmet))
    print(strpredmet) 

当我实际运行它时,我双击QListWidget中的Item,predmet是None,我真的不知道为什么。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-04-19 12:08:45

您似乎不理解获取QListWidgetItem文本所需的API调用。currentItem()返回一个QListWidgetItemtext()返回一个字符串;两者都不接受任何参数。这里有一个小应用程序,它可以完全满足您的请求;如果您需要任何澄清,请告诉我。

代码语言:javascript
复制
import sys
from PyQt4.QtGui import QApplication, QWidget, QListWidget, QHBoxLayout

class ListWindow(QWidget):
    def __init__(self, parent=None):
        super(ListWindow, self).__init__(parent)
        self.listWidget = QListWidget()
        for i in range(1, 11):
            self.listWidget.addItem("Item {}".format(i))
        self.listWidget.itemActivated.connect(self.printItemText)
        mainLayout = QHBoxLayout()
        mainLayout.addWidget(self.listWidget)
        self.setLayout(mainLayout)

    def printItemText(self, item):
        """These two are equivalent"""
        print(item.text())
        print(self.listWidget.currentItem().text())

if __name__ == "__main__":
    app = QApplication(sys.argv)
    listWindow = ListWindow()
    listWindow.show()
    app.exec_()
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5702553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档