2017-08-17 69 views
0

我有一個組織設置問題,我需要幫助。這是我目前的文件夾結構。使用GUI加載Python模塊

enter image description here

我想要做什麼與包含功能指定AppCommands模塊運行主UI。根據我想要運行該工具的應用程序。有沒有辦法使用另一個python文件,我可以加載gui和相關的應用程序命令moduel?所以當用戶點擊按鈕時,它會調用更正應用程序命令。

所以說,比如我創建這樣的僞代碼

主要執行PY文件爲Photoshop

Import photoshop.appcommands as cmds 
Import GUI 
Gui(cmds) 

我怎麼然後告訴我主要的GUI工具加載的Photoshop模塊Python文件'AppCommands'何時運行?

應用#1代碼:

def runTool(): 
    msg = 'This is Notepad' 
    print msg 

應用#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

變化'進口AppCommands爲cmds'爲'進口{} XXXXX作爲.AppCommands cmds' – eyllanesc

+0

這是一個好主意,我怎麼然後運行與指定模塊的工具? – JokerMartini

+0

你如何確定指定的模塊? –

回答

0

嗯,如果我UND理解正確,你需要選擇正確的模塊來加載一個函數,然後你用一些變量參數啓動程序?

在這種情況下,您可以同時導入並嘗試全局:

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的答案。