3

我正在向 QTableWidget 动态添加上下文菜单:

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 函数中,如何确定单击了哪个菜单?

4

2 回答 2

5

正确的方法是使用信号映射器:您可以将数据分配给每个发送者并使用该数据获取信号。

于 2009-10-06T13:24:40.173 回答
3

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

于 2009-10-06T08:52:15.013 回答