| 開発者 | ロビン・ダン ハリ・パサネン |
|---|---|
| 初回リリース | 1998年 |
| 安定版リリース | 4.2.1 [1]
/ 2023年6月7日 |
| リポジトリ |
|
| 書かれた | C++ / Python |
| オペレーティング·システム | クロスプラットフォーム |
| ライセンス | wxWindows ライセンス |
| Webサイト | wxpython.org |
wxPython は、Python プログラミング言語用のクロスプラットフォームGUI API (「ツールキット」と呼ばれることが多い) wxWidgets ( C++で記述)のラッパーです。Tkinter の代替手段の 1 つです。Python 拡張モジュール (ネイティブ コード)として実装されています。
歴史
1995 年、Robin Dunn は、HP-UXシステムに展開できるGUIアプリケーションを短期間でWindows 3.1でも実行できるようにしたいと考えていました。彼はクロスプラットフォームソリューションを求めていました。無料および商用のソリューションを評価しているときに、 wxWidgets ツールキットのWeb ページ(当時は wxWindows と呼ばれていました) でPythonバインディングを見つけました。これが Dunn が Python と出会ったきっかけでした。Harri Pasanen および Edward Zimmerman とともに、これらの初期バインディングを wxPython 0.2 に開発しました。 [2]
1998年8月にwxPythonのバージョン0.3がリリースされました。これはwxWidgets 2.0用に構築され、Win32上で動作し、wxGTKバージョンも開発中でした。[3]
ラッパーの最初のバージョンは手作業で作成されました。しかし、コードの保守とwxWidgetsのリリースとの同期が難しくなりました。1997年までに、バージョンはSWIGで作成され、ラッパーの更新にかかる作業量が大幅に削減されました。[2]
プロジェクト・フェニックス
2010年に、wxPythonの実装を整理し、その過程でPython 3との互換性を持たせるプロジェクトであるPhoenixが開始されました。 [4]このプロジェクトはwxPythonの新しい実装であり、速度、保守性、拡張性の向上に重点を置いています。以前のバージョンのwxPythonと同様に、wxWidgets C++ツールキットをラップし、wxWidgets APIのユーザーインターフェイス部分へのアクセスを提供します。[5]
2017年にwxPython 4.0.0a1がリリースされ、Project Phoenixバージョンが正式版となった。[6] wxPython 4.xは2022年6月現在開発中の最新バージョンである。[7]
使用
wxPython を使用すると、プラットフォーム固有のコードをほとんど必要としない クロスプラットフォーム GUIアプリケーションに Python を使用できるようになります。
例
これは単純な「Hello world」モジュールで、wxPython の 2 つのメインオブジェクト(メイン ウィンドウ オブジェクトとアプリケーション オブジェクト) の作成と、プログラムのユーザー対話型部分を管理するイベント駆動型システム ( を呼び出すことによってMainLoop()) への制御の渡しを示しています。
#!/usr/bin/env python3
インポート wx
app = wx.App ( False ) # 新しいアプリを作成し、stdout/stderr をウィンドウにリダイレクトしません。frame = wx.Frame ( None , title = " Hello World " ) #フレームはトップレベルのウィンドウです。frame.Show ( True ) #フレームを表示します。app.MainLoop ( )
これは、Windows 10 オペレーティング システムで表示される wxPython GUI ディスプレイを備えた wxPython 閉じるボタンの別の例です。

インポート wx
クラス WxButton ( wx.Frame ) :
def __init__ ( self , * args , ** kw ):
super ( WxButton , self ) . __init__ ( * args , ** kw )
self . InitUI ()
def InitUI ( self ):
pnl = wx . Panel ( self )
closeButton = wx . Button ( pnl , label = 'Close Me' , pos = ( 20 , 20 ))
closeButton.Bind ( wx.EVT_BUTTON , self.OnClose )は、ボタンをバインドするときに使用します。
self.SetSize ( ( 350,250 ) ) self.SetTitle ( '閉じるボタン' ) self.Centre ( )
def OnClose ( self , e ):
self . Close ( True )
def main ( ) :
app = wx.App ( ) ex = WxButton ( None ) ex.Show ( ) app.MainLoop ( )
__name__ == "__main__"の場合:
main ()
ライセンス
wxPythonはラッパーであるため、wxWidgetsで使用されるものと同じフリーソフトウェアライセンス(wxWindowsライセンス)[8]を使用します。このライセンスはFree Software FoundationとOpen Source Initiativeによって承認されています。
wxPythonで開発されたアプリケーション
- 個人情報管理者のチャンドラー
- Dropbox、Dropboxクラウドベースストレージのデスクトップクライアント[9]
- マルチプラットフォーム テキストエディタ、Editra
- Googleドライブ、Googleクラウドベースのストレージシステムのデスクトップクライアント[10]
- GRASS GIS は、無料のオープンソース 地理情報システムです。
- Métamorphose、バッチリネーム機能
- 写真バッチプロセッサPhatch
- PlayOnLinuxとPlayOnMac、Wineフロントエンド
- PsychoPy 、神経科学と心理学の研究のための実験作成ツール
参考文献
引用
- ^ 「wxPython Changelog」. wxPython . 2023-06-07 . 2023-06-30閲覧。
- ^ ab Team、wxPython (2017-07-14)。「wxPython の歴史」。wxPython 。 2022年6月25日閲覧。
- ^ 「Yahoo! グループ: python-announce-list メッセージ: メッセージ 95/1083」。2001-03-12。2001年3月12日時点のオリジナルよりアーカイブ。2022年6月25日閲覧。
- ^ 「プロジェクト・フェニックスの目標」。2016年3月17日閲覧。
- ^ 「GitHub 上の Project Phoenix readme ファイル」 。2014年 1 月 1 日閲覧。
- ^ Robin (2017-04-16). 「wxPython 4.0.0a1 リリース」. wxPython . 2022年6月25日閲覧。
- ^ Team、wxPython (2020-11-21)。「wxPython 4.1.1 リリース」。wxPython 。 2022年6月25日閲覧。
- ^ 「著作権表示」。2009年2月16日時点のオリジナルよりアーカイブ。2009年2月27日閲覧。
- ^ 「Dropbox から学ぶ 6 つの教訓: 15 分ごとに 100 万個のファイルが保存される」
- ^ 「オープンソース コンポーネントとライセンス」。Google 。2013年1 月 28 日閲覧。
出典
- Rappin, Noel; Dunn, Robin (2006 年 3 月 1 日) 。wxPython in Action。グリニッジ: Manning Publications。p . 552。ISBN 978-1-932394-62-7。
さらに読む
- Precord, Cody (2010 年 12 月)。wxPython 2.8 アプリケーション開発クックブック。グリニッジ: Packt Publishing。p . 308。ISBN 978-1-84951-178-0。
外部リンク
- 公式サイト
- wxPython ウィジェット チュートリアル シリーズ
- プロジェクト フェニックスのメイン ページ
- wxPython で開発されたアプリケーションのリスト
