ホームページ  >  記事  >  バックエンド開発  >  wxPython と py2exe を使用して Windows で Python GUI プログラムを開発するチュートリアルの例

wxPython と py2exe を使用して Windows で Python GUI プログラムを開発するチュートリアルの例

WBOY
WBOYオリジナル
2016-08-04 08:55:541523ブラウズ

Python はビジュアル プログラミング、つまり GUI プログラムの作成をサポートしており、これを使用してお気に入りのデスクトップ プログラムを作成できます。 wxPython を使用してインターフェイスを作成するのは非常に簡単ですが、C# のようにコントロールをドラッグすることはできず、独自のコード レイアウトを記述する必要があります。書き込みが完了した後、Python がインストールされていないコンピューターでは直接 py ファイルを実行できないため、どのコンピューターでも実行できるようにパッケージ化できるツールはありますか? ネットで検索したところ、py2exe でこの機能を完了できることがわかりました。 wxPython と py2exe はどちらもオープンソースのフリー ソフトウェアです。

環境構成
wxPython:sourceforge プロジェクト ページ https://sourceforge.net/projects/py2exe/files/py2exe/0.6.9/
ダウンロード後、ダブルクリックしてインストール プログラムが自動的に対応する PythonScript にインストールされます。
py2exe: 公式ダウンロードホームページ https://www.wxpython.org/download.php
ダウンロードする Python のバージョンに注意して、ダブルクリックしてインストールすることもできます。
次の例は、wxPython と py2exe の簡単な使用法を示しています。

基本的な例
ファイル名: wxTest.py:

リーリー

変更したファイルを編集した後、py2exe を使用して Python スクリプトを Windows 実行可能ファイルにコンパイルします。これにより、Python インタープリターは必要なくなります。 py2exe を使用するには、まずコンパイル スクリプトを作成し、次に Python を通じてコン​​パイル スクリプトを実行して、他のスクリプトを実行可能ファイルにコンパイルする必要があります。次の例は、実行可能ファイルにコンパイルされるスクリプトです: setup.py

リーリー

必要なモジュールをインポートすることに加えて、setup.py にはステートメントが 1 つだけあります:

リーリー

角括弧はコンパイルされるスクリプトの名前で、先頭の「windows」はGUIプログラムにコンパイルされることを意味します。コマンド ライン インターフェイス用の実行可能ファイルをコンパイルする場合は、Windows をコンソールに変更するだけです。スクリプトを Windows サービスにコンパイルする必要がある場合は、service オプションを使用できます。
すべて編集した後、wxTest.py と setup.py を同じパスに配置し、cmd でパスを入力し、次のように入力します:

リーリー
実行中に次のエラーが発生した場合:
リーリー
MSVCP90.dll が見つからないため、Windows ディレクトリで MSVCP90.dll ファイルを検索し、Python インストール ディレクトリ内の DLL にコピーします。
PyQt プロジェクトをパッケージ化するときに、次のエラーが報告される場合があります
リーリー
現時点では、パッケージ化するときに次のように --includes sip を追加するだけで済みます:
リーリー

実行後、パス上に dist と build の 2 つのディレクトリが生成されます。 dist ディレクトリには、コンパイルによって生成されたファイルが含まれています。コンパイルされたプログラムを Python がインストールされていない他のマシンで実行したい場合は、dist ディレクトリを他のマシンにコピーするだけです。図に示すように、ダブルクリックして wxTest.exe を実行します。

2016711164500179.jpg (300×300)

wxPythonを使用してファイルmd5を計算するためのGUIツールを構築します
最終的にガジェットは次のようになります。ファイルをドラッグすると、その md5 とサイズが自動的に計算されます。

2016711164609816.png (443×334)

以下はすべてのコードです

リーリー
ちょっとした説明:

クラス App と App().MainLoop() は、メイン Frame を初期化するための def OnInit メソッドがあり、それを中心に見てみましょう。フレームの定義

このガジェットはレイアウトに boxSizer を使用します。 MD5 と次のテキスト ボックスを同じ行に配置したい場合は、boxSizer を 1 つだけ使用し、その中のすべてのコントロールを配置します。水平の boxSizer を追加し、この水平の boxSizer をメインの boxSizer に置きます

リーリー
上記は、対応する静的テキストとテキスト ボックスを初期化するものです。メソッドの最初のパラメータは、それが配置されている親クラス ウィンドウです。実際には、パネルを使用することはできませんが、パネルを直接配置します。ボックスサイザー
リーリー
メインの boxSizer にファイルパスを追加する 最初は、最初にすべてのコントロールをパネルに配置してから、パネルを boxSizer に配置するといつも思っていましたが、これは間違いです。 boxSizer を直接入力し、コントロールの親クラスを pane に設定する必要があります。その後、コントロールを表すパラメーター wx.LEFT|wx.TOP があり、パネルを入れる必要はありません。上と左から 10 ピクセルの距離を指定し、wx.EXPAND を使用してその領域を完全に塗りつぶします。上から 10 ピクセル、左から 20 ピクセルに設定できないか考えたこともあります。このように設定することはできません。つまり、Add 関数では同じ値しか設定できないということです。後で実装できるかどうかを確認します。

リーリー
これはウィンドウクラスにドラッグ&ドロップメソッドを追加するものですが、これも比較的固定的な書き方です

上記の FileDropTarget クラスの __init__ メソッドと OnDropFiles メソッドも固定メソッドですが、内部の処理機能が異なります。

wxPython の一部のスタイルとフラグのパラメータは、レイアウトで使用するのにある程度の経験が必要であり、それらを上手にマスターするにはある程度の努力が必要です。次の 2 つの Web サイトで詳細を説明しています。続きを読む

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。