インターフェイスには Python を PyQt で使用し、プラグインの追加には Yapsi を使用しています。Yapsy はすべてのプラグインを見つけて、mainWindow のメニューにすべて追加しました。各プラグインは、トリガーされた信号でアクティブ化されます。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
#===================================================================
いくつかのパラメーターを使用して信号を他の信号と接続することを考えましたが、その方法がわかりません。