大阪市中央区 システムソフトウェア開発会社

営業時間:平日09:15〜18:15
MENU

Raspberry Pi 3でのGUI開発wxGlade,wxPython

株式会社クローバーフィールドの経営理念
著者:津路高広
公開日:2018/07/09
最終更新日:2018/07/09
カテゴリー:技術情報
タグ:

津路です。
先月の投稿では、wxGlade, Kivyなどを取り上げました。
今回も同様です。

wxGlade
 wxGladeは、GUI制作専用です。ファイル管理、関数名管理などは行えません。
 難点がまた見つかりました。sizerのプロパティは見えますが、sizeやpositionが見えません。
 デザイナーでは赤い線がみえるだけ。
 探ると、バージョンが古いからかなと推察し、アップデートすることを考えました。まず、Pythonは3.4が入っているのに、wxPythonはwxGladeと一緒に入った3.0.1.1。wxPythonをアップデートすることから始めたいと思います。

  • コマンドラインでの作業
    • wxglade name.wxg によって、起動し、name.wxgをloadして編集できます。
    • wxglade -g C++ -o directoryname name.wxgによって、C++ コードを出力できます。
      単一の wxg の場合は、directoryname を name に変えます。
      また、optionalで、複数のソースファイルに分割して、ソースコードを生成できます。
    •  

    • コンパイル、リンクするには、makefile を作成するほうが早く、管理しやすいです。wx系統のフラグが必要です。
  • 使用上の注意点
    • GUI変更ごとにソースファイルを更新しないと、どこかで変更点が落ちる可能性があると書いてあります。
    •   

    • クラスや、カラーなどには、C++形式の名前を付けること。
    •   

    • ASCII以外の文字にはUTF-8を使用すること。
  • wxPython
    wxPythonでは、コーディングによってGUI制作できます。wxWidgetsと同様、APIがわかりやすく、開発は難しくありません。見栄えも良いです。
    まず、
    import wx
    そして、メインはapplicationを宣言してループを回します。
    application = wx.App()
    frame = wx.Frame(None, wx.ID_ANY, 'テストフレーム', size=(300,300), pos=(0,0))
    frame.Show()
    application.MainLoop()

    例えば、メニューバーを作成するには、menuBar = wx.Menu() でMenuを追加
    menuBar = wx.MenuBar()
    menuBar.Append(filemenu, "&File")
    self.SetMenuBar(menuBar)

    とします。
    ライセンス:wxWindows Library Licence(LGPL+user terms)

      上に戻る