如何将listWidget中选定的项作为参数传递给另一个函数
每当我在列表小部件中点击任何一个功能时,它就会运行一个特定的函数。现在我想把点击的那个项目本身作为参数传递给这个函数。以下是我的代码:
QtCore.QObject.connect(self.listWidget, QtCore.SIGNAL("itemClicked(QListWidgetItem *)"), self.test)
def test(self):
print 'hello'
但我想要的是:
def test(self,item):
print item
1 个回答
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。当你点击某个项目时,那个项目和它的文本会被打印到控制台上。