每当我单击列表小部件中的任何函数时,它都会运行一个特定的函数。现在我想将项目本身作为该函数的参数发送。这是代码:
QtCore.QObject.connect(self.listWidget, QtCore.SIGNAL("itemClicked(QListWidgetItem *)"), self.test)
def test(self):
print 'hello'
相反,我想:
def test(self,item):
print item
答案 0 :(得分:12)
这应该已经有效 - 当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。单击某个项目时,该项目以及项目文本将打印到控制台。