asammdfgui wrapperの実装(1)

パターン別にWrapperの実装方法について説明を進めていきたいと思います。

まずは、既存の機能(メニューあり)に機能を追加する方法

前項で紹介させて頂いた”GUI_Main.py”に定義されている、”def open_file”には対象となる拡張子として”zip”がリストされていますが、
asammdfguiが使用するwidgetsにある”file.py”では、zipファイルを選択するとエラーとなります。

このため、”ZIP”ファイルが読み込める様に、Wrapper(Add On)を追加実装します。

ユーザがGUI上でファイルを選択して開く際、GUI_Main.pyからは、file.pyの呼び出しが行われます。
“ZIP”ファイルが選択された場合、file.pyがエラーを返すのですから、file.pyに続いて、

具体的には “_open_file”にて、FileWidgetを実行するとエラーが戻るのだから…

“_open_file”を下記の様に修正することで、Wrapperとして作成したモジュールが実行されるようになります。
追加されたコードを見れば理解できると思いますが、file.pyではZIPファイルに対してエラーとなることを利用して、
Wrapperが実行できる様にしております。

Wrapperの実装はというと、まず”GUI_Main.py”に、Wrapperのコードが実行できる様に定義を追加します。
ここでは”¥GUI_Portable¥gui”に新たに”widgets2″というフォルダを作成し、ZIPファイルの読み込みに対応したコード
”file2.py”を実装します。

従いまして、”GUI_Main.py”の宣言部に、file2.pyに定義されてFileWidget2をインポートする様に、file.pyに続いて追加します。

 

さらに、”¥GUI_Portable¥gui¥widgets2¥file2.py”として以下のコードを作成します。
なお、ここではまだFileWidget2には、ZIPファイルを読み込む機能は実装されておらず、
エラーとならずに、FileWidets2が呼び出されることを確認するために、”Print文”による表示のみとなっています。

以上、Wrapperの実装例(その1)となります。

おすすめ

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください