2024-05-16 18:04:47 发布
网友
每当我单击列表小部件中的任何函数时,它都会运行一个特定的函数。现在我想把项目本身作为参数发送给那个函数。代码如下:
QtCore.QObject.connect(self.listWidget, QtCore.SIGNAL("itemClicked(QListWidgetItem *)"), self.test) def test(self): print 'hello'
相反,我想要:
def test(self,item): print item
这应该已经起作用了-当发出itemClicked时,它会将单击的QListWidgetItem作为参数发送。你只需要编辑你的test函数来接受一个额外的参数,这就是你的QListWidgetItem。
itemClicked
QListWidgetItem
test
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。单击项目时,该项目及其文本将打印到控制台。
这应该已经起作用了-当发出
itemClicked
时,它会将单击的QListWidgetItem
作为参数发送。你只需要编辑你的test
函数来接受一个额外的参数,这就是你的QListWidgetItem
。在上面的示例中,您将看到一个带有三个项的QListWidget。单击项目时,该项目及其文本将打印到控制台。
相关问题 更多 >
编程相关推荐