我有一个需要帮助的组织设置问题。这是我当前的文件夹结构。
我想要做的是使用包含功能的指定AppCommands模块运行主UI。根据我想要运行该工具的应用程序。有没有办法使用另一个python文件,我可以加载gui和相关的应用程序命令moduel?因此,当用户单击该按钮时,它会调用corrects app命令。
所以说例如我创建一个像这个伪代码
的python文件Photoshop的主要执行py文件
Import photoshop.appcommands as cmds
Import GUI
Gui(cmds)
如何告诉我的主GUI工具在运行时加载photoshop模块的“AppCommands”?
app#1代码:
def runTool():
msg = 'This is Notepad'
print msg
app#2代码:
def runTool():
msg = 'This is Photoshop'
print msg
主要的ui代码:
import sys
import os
from PySide import QtGui, QtCore
import AppCommands as cmds
class MainWindow(QtGui.QMainWindow):
def __init__(self,parent=None):
super(MainWindow, self).__init__(parent)
self.uiButton = QtGui.QPushButton('Button', self)
# layout
grid = QtGui.QGridLayout()
grid.addWidget(self.uiButton, 3, 1)
main_widget = QtGui.QWidget()
main_widget.setLayout(grid)
self.setCentralWidget(main_widget)
self.uiButton.clicked.connect(self.browse_clicked)
# actions
def browse_clicked(self):
print 'Execute Command'
cmds.runTool()
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
ex = MainWindow()
ex.show()
sys.exit(app.exec_())
答案 0 :(得分:0)
好吧,如果我理解正确,你需要选择正确的模块加载一个函数,然后用一些变量args启动程序吗?
在这种情况下,您可以导入并尝试全局变量:
import notepad.AppCommands
import photoshop.AppCommands
...
# in your app init code:
x = 'photoshop' # an arg passed from config/CLI or from somewhere else
actual_module = globals()[x]
actual_module.AppComands.runTools()
++但是如果你只是不知道如何从某个模块运行某个函数,请关注@ eyllanesc的答案。