
まくまく
やっぱりアプリが作りたい!PythonのGUIライブラリtkinterもkivyも良いのだけど、もうひとつ何かこう、、、良いとこ取りをしたものはないかと探してたらいきついたwxPython。まずは色々と試していこうと思います。
出力
今回作成したのはこちら。公式のドキュメントを参考にして作りました。ウインドウを作成し3種類のテキストをBoxSizerで表示しています。
BoxSizerで配置方向は「orient=wx.VERTICAL」に指定しているので3つのテキストが縦に並びます。横並びの場合は「wx.HORIZONTAL」です。
上段、中段はStaticText、下段はTextCtrlにしています。いちばんの上のテキストが切れているのもポイントですね。中段、下段はself(MyFrame)に配置しているのに対して、上段はpnl(Panel)に配置してます。
サンプルプログラム
#ライブラリのインポート
import wx
class MyFrame(wx.Frame):
def __init__(self, *args, **kw):
super(MyFrame, self).__init__(*args, **kw)
pnl = wx.Panel(self)
#テキストを3種類作成
text1 = wx.StaticText(pnl, label="Hello World!")
text2 = wx.StaticText(self, label="Hello World!")
text3 = wx.TextCtrl(self, id=-1, value='Hello World!')
text3.SetBackgroundColour('white')
#Sizerを作成
sizer = wx.BoxSizer(orient=wx.VERTICAL)
#テキストをSizerに追加
sizer.Add(text1, 1)
sizer.Add(text2, 1)
sizer.Add(text3, 1)
#sizerをセット
self.SetSizer(sizer)
if __name__ == '__main__':
app = wx.App()
frm = MyFrame(None, title='wxPythonのテスト')
frm.Show()
app.MainLoop()