2012-03-29 71 views
2

這看起來可能很愚蠢,但我想這可能是這個問題的簡單解決方案。我有一個python腳本,它執行一些基於命令行的數學計算。我不想對我現在的代碼做任何重大修改。現在我應該如何創建一個GUI(我使用wxpython),該GUI使用該腳本作爲其模型,同時將模型作爲獨立的Python腳本運行,就像現在一樣。我知道這是繼承和多態的問題,但我不清楚我應該採取的方法。任何指導方針將不勝感激。將現有的命令行腳本轉換爲python中的GUI

+0

這可能會幫助你開始:http://stackoverflow.com/q/9927821/1098754 – 2012-03-29 15:42:42

+0

這太好笑了!就我所知,我剛剛回答了這個問題。 LMAO – 2012-03-29 15:44:48

+0

太搞笑了!對於那個很抱歉。說真的,我不清楚你在你的問題中尋找什麼樣的答案。我的意思是,簡單的答案是「構建一組用戶控件並將控件操作鏈接到腳本的輸入/輸出。」我想你正在尋找除了那個簡單的答案之外的東西。 – 2012-03-29 15:47:54

回答

1

這取決於您的命令行工具的質量。基本上,如果它是「正確」編寫的,它將其功能封裝在某些可在其他腳本中重用的函數或類中 - 這意味着您可以導入並使用它們而不會出現問題。命令行工具的「主要」部分然後解析命令行參數並調用這些函數/類。這一切都是真實的,那麼你顯然可以在基於GUI的應用程序中導入你的功能並使用它。

因此總之,您的功能必須與用戶界面分開,然後切換界面或多或少不重要。這通常被稱爲分離front end and back end

1

比方說,你的命令行可執行文件是:

%計算-flag1 -flag2數據文件OUTPUTFILE

在wxPython中,你可以使用複選框以選擇是否標誌1和/或FLAG2使用,文件選擇窗口小部件對於數據文件,輸出文件和「執行」按鈕的文本輸入字段。單擊執行時,在字符串中創建命令行並將其傳遞給子流程模塊中的某個方法。

+0

這正是GUI界面對某些命令行工具採用的方法。 'wget'在這裏浮現。 – 2012-03-30 13:58:59