そもそも Python の UI ツールキットとして Tkinter を標準搭載したのは、その時点でまだ wxPython が存在していなかったからというのが大きいと思います。 将来的には wxPython が標準になってくれるとよいねー。
wxPython のベースとなっている wxWidget プロジェクトは、1992 年に Julian Smart によってスタートされました。 共通のプレフィックスととなっている wx には、もともと下記のような意味が含まれています。
Python のメソッド名は一般的に、
lower_case_separeted_by_underscores
lowerCaseInterCap
のようなスタイルが使用されますが、wxPython のメソッド名は wxWidget のスタイルが採用されているため、
UpperCaseInterCap
といったスタイルで記述されています。 wxPython を使って作成するアプリケーションでは、スタイルを統一するために後者の形式を使うことが推奨されています。
wxPython の古いパッケージ構成では、トップレベルの wxPython
パッケージのサブパッケージとして wx
パッケージが用意されていたため、次のようなインポート記述を行っていました。
from wxPython import wx
app = wx.wxApp()
各クラスには wx
というプレフィックスが付いていたため、実際にクラスを使用する時は wx.wxApp
というように、2回 wx
というテキストをタイピングする必要がありました。
クラス名の前にプレフィックスが付いているのは、
from wxPython.wx import *
app = wxApp()
というようにすべてのシンボルをインポートしたときに名前の衝突を防ぐためでしたが、そもそもこのようなインポート方法は名前衝突の根本的解決にならず、Python のコーディングスタイルとして推奨されていません。
新しい wxPython では、wx
がトップレベルのパッケージとなり、クラス名のプレフィックスもなくなったので、シンプルに記述できるようになりました。
import wx
app = wx.App()
wxPython の wx
パッケージをインポートすると、wxPython 関連モジュールの初期化処理が行われます。
この処理は、wx
パッケージのサブパッケージにも必要な処理なので、サブパッケージをインポートする前に、必ず wx
パッケージをインポートしておく必要があります。
import wx # サブパッケージの前に wx パッケージをインポートする!
from wx import xrc
from wx import html
wx.Panel
は適切なデフォルト背景色を表示してくれる。