如何将列表小部件中选择的项目作为参数发送到另一个函数

2024-05-16 18:04:47 发布

您现在位置:Python中文网/ 问答频道 /正文

每当我单击列表小部件中的任何函数时,它都会运行一个特定的函数。现在我想把项目本身作为参数发送给那个函数。代码如下:

QtCore.QObject.connect(self.listWidget, QtCore.SIGNAL("itemClicked(QListWidgetItem *)"), self.test)

def test(self):
    print 'hello'

相反,我想要:

def test(self,item):
        print item

Tags: 项目函数代码testself列表参数部件
1条回答
网友
1楼 · 发布于 2024-05-16 18:04:47

这应该已经起作用了-当发出itemClicked时,它会将单击的QListWidgetItem作为参数发送。你只需要编辑你的test函数来接受一个额外的参数,这就是你的QListWidgetItem

from PyQt4.QtCore import QCoreApplication, Qt
from PyQt4.QtGui import QListWidget, QListWidgetItem, QApplication

import sys

class MyList(QListWidget):
    def __init__(self):
        QListWidget.__init__(self)
        self.add_items()
        self.itemClicked.connect(self.item_click)

    def add_items(self):
        for item_text in ['item1', 'item2', 'item3']:
            item = QListWidgetItem(item_text)
            self.addItem(item)

    def item_click(self, item):
        print item, str(item.text())

if __name__ == '__main__':
    app = QApplication([])
    myList = MyList()
    myList.show()
    sys.exit(app.exec_())

在上面的示例中,您将看到一个带有三个项的QListWidget。单击项目时,该项目及其文本将打印到控制台。

相关问题 更多 >