필자는 PyQt와 함께 인터페이스를 사용하고 Yapsi를 사용하여 플러그인을 추가하고 있습니다. Yapsy가 내 모든 플러그인을 발견하고 내 메인 윈도우의 메뉴에 모두 추가했습니다. 각 플러그인은 트리거 된 신호로 활성화됩니다. QAction에 대한이 신호에는 params가 없으므로 어떤 플러그인이 신호를 방출했는지 알아야합니다.QAction을 위해 pyqt에서 triggered() 신호를 다시 구현하는 방법은 무엇입니까?
이 관련 코드는 다음과 같습니다
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
#===================================================================
가 좀 PARAMS와 다른 신호와 신호를 conect 생각하지만 난 그것을하는 방법을 모르겠어요.
Yapsy는 새로운 플러그인을 추가하기위한 간단한 라이브러리입니다. 소프트웨어를 더 모듈화하기에 좋습니다. –