これは愚かな疑問に思えるかもしれませんが、この問題の単純な解決策があると思っています。私は、コマンドラインベースのいくつかの数学的計算を行うpythonスクリプトを持っています。私は現在持っているコードに大きな変更を加えるつもりはありません。モデルをそのままスタンドアローンのPythonスクリプトとして機能させながら、モデルとしてそのスクリプトを使用するGUI(私はwxpythonを使用しています)を作成するにはどうすればよいでしょうか。私はそれが相続と多型の問題であることを知っていますが、私が取るべきアプローチについてはっきりしていません。どんなガイドラインも大変ありがとうございます。既存のコマンドラインスクリプトをPythonのGUIに変換する
答えて
コマンドラインツールの品質によって異なります。基本的に「正しく」書かれていると、他のスクリプトで再利用可能な関数やクラスにその機能がカプセル化されます。つまり、問題なくインポートして使用できます。コマンドラインツールの「メイン」部分は、コマンドライン引数を解析し、それらの関数/クラスを呼び出します。 すべてが真であれば、明らかにGUIベースのアプリケーションで機能をインポートして使用することができます。
だから要するに、あなたの機能は、ユーザインターフェースから分離する必要があり、その後、インターフェースを切り替えることは、多かれ少なかれ簡単です。これは通常、front end and back endの分離と呼ばれます。
のは、あなたのコマンドライン実行ファイルがあるとしましょう:wxPythonので
OUTPUTFILE
%の計算-flag1 -flag2データ・ファイルのあなたは、FLAG2が使用されているFLAG1かどうか、および/または選択するファイル選択ウィジェットをチェックボックスを使用することができますデータファイルの場合は、出力ファイルのテキスト入力フィールドと '実行'ボタンがあります。 executeをクリックすると、コマンドラインを文字列で作成し、サブプロセスモジュール内のメソッドの1つに渡します。
これは、一部のコマンドラインツールに対するGUIインターフェイスのアプローチとまったく同じです。 'wget'がここに湧き出る。 –
- 1. コマンドラインスクリプトのクックブックGUIインターフェイス
- 2. 既存のAndroidプロジェクトをKindleに変換
- 3. 既存のデータベースの中でlatin1データをutf8に変換する
- 4. 既存のgrid.Panelをtree.Panelに変換する
- 5. 既存のプロジェクトをSilverlightに変換する
- 6. 既存のiOSネイティブアプリケーションをiOSチタンモジュールに変換する方法
- 7. 既存のデータベースをWordPress形式に変換する
- 8. 既存のsqliteデータベーステーブルをfts3に変換する方法は?
- 9. 既存のCライブラリをWebインタフェースに変換する
- 10. 既存のexeをgui with windowsサービスにする
- 11. Pythonで既存のサードパーティライブラリの機能を変更する方法
- 12. Matlab GUI:変数を使用して既存のオブジェクトハンドルを参照する
- 13. Java:既存のドキュメントにドキュメントを変換:マージしますか?
- 14. 既存のiPhoneプロジェクトをMonoTouchでユニバーサルに変換しますか?
- 15. JavaのMFCデスクトップアプリケーションGUIを変換する
- 16. 既存のコンピュータインベントリシステムを交換する
- 17. 既存のGUIでうまく動作し、変換に役立つJava IDEは何ですか?
- 18. Python既存の.xlsxファイルのデータを変更します。
- 19. phpコマンドラインスクリプトに環境変数を渡す
- 20. PDFから画像への変換 - Windowsコマンドラインスクリプト
- 21. JLWGLを使用して既存の2Dグリッドベースのゲームを3Dに変換する
- 22. 既存のRedmine Wikiを繊維からMarkdownに変換するには?
- 23. sdcardに存在する既存のXMLファイルを変更する
- 24. この既存のFOSSアプリ(itrade)のGUIプロット部分を抽出するには
- 25. 既存の.XSLTをGUIに読み込み、変更し、新しい.XSLTを保存しますか?
- 26. 既存のJavaプロジェクトをosgiバンドルに変換する最も良い方法
- 27. 既存のasp.net mvc 3 Webアプリケーションをazureに変換する方法
- 28. 既存のクリスタルレポートを変更する
- 29. 既存のモデルを変更/アップグレードする
- 30. 既存のデータセットを変更する
これは、あなたが始めるのに役立つことがあります。http://stackoverflow.com/q/9927821/1098754 –
これはとても面白いです!私はちょうどその質問に私の知る限りで答えました。 LMAO –
面白い!申し訳ありません。真剣に、私はあなたの質問であなたが探している答えの種類が不明です。つまり、ユーザーコントロールのセットを作成し、コントロールアクションをスクリプトの入出力にリンクさせるという単純な答えです。私はあなたがその単純な答え以外の何かを探していると思っています。 –