PyQt上下文菜单

时间:2009-10-06 08:44:16

标签: python qt pyqt4

我正在动态地向QTableWidget添加一个contextmenu:

playlistContenxt = QAction("Add to %s" % (currentItem.text()), self.musicTable)
playlistContenxt.setData(currentData)
self.connect(playlistContenxt, SIGNAL("triggered()"), self.addToPlaylistAction)
self.musicTable.addAction(playlistContenxt)

currentItem.text()是从db中获取的播放列表名称,因为您只能看到一个函数(addToPlaylistAction)从不同的操作接收所有触发器。在我的addToPlaylistAction函数中,如何确定单击了哪个菜单?

2 个答案:

答案 0 :(得分:5)

正确的方法是使用signal mapper:您可以为每个发件人分配数据并获取包含该数据的信号。

答案 1 :(得分:3)

您可以使用QAction.setData设置一些数据,以便插槽知道要添加的播放列表。然后,您可以从插槽中调用self.sender()来获取触发信号的操作,然后使用action.data()获取数据。