我正在使用Python和PyQt来创建界面,同时使用Yapsi添加插件。Yapsy可以找到所有的插件并将它们添加到主窗口的菜单中。每个插件都通过触发信号来激活。对于QAction的这种信号没有参数,我需要知道是哪个插件发出了该信号。
以下是相关代码:
以下是相关代码:
pluginMenu = self.menuBar().addMenu("P&lugins")
# Create plugin manager
self.manager = PluginManager(categories_filter={ "Formatters": Formatter})
self.manager.setPluginPlaces(["plugins"])
# Load plugins
self.manager.locatePlugins()
self.manager.loadPlugins()
# A do-nothing formatter by default
self.formatters = {}
for plugin in self.manager.getPluginsOfCategory("Formatters"):
# plugin.plugin_object is an instance of the plugin
print(plugin.plugin_object.name)
# The method to create action associated each input to default triggered() signal
newAction = self.createAction(plugin.plugin_object.name, slot=self.updatePreview())
self.addActions(pluginMenu, (newAction, None))
self.formatters[plugin.plugin_object.name] = (plugin.plugin_object, newAction)
def updatePreview(self):
# Here I need know what plugin emit the signal
#===================================================================
我想将一个信号与另一个带有一些参数的信号连接起来,但我不知道如何做。