27-python_GUI-レイアウト管理-イベント処理
2699 ワード
1.wxPython-レイアウト管理
寸法器-sizer,wx.BoxSizer->>help(wx.BoxSizer)-役割:追加されたコンポーネントのレイアウト位置を管理する-使用法:hbox=wx.BoxSizer([wx.HORIZONTAL]) vbox = wx.BoxSizer(wx.VERTICAL)-レイアウトを容易にするためにpanelを追加-コンポーネントを追加してsizerを管理する.add(コンポーネント、proportion=、flag=、border=)の例
2.wxPython-イベント処理
コンポーネントのBind(func)によってイベント処理関数をバインドする、例えば、ボタンをクリックしたときにコンソールに「hello」def printHelloEvetHandle(evt):print「hello」btnを印刷する.Bind(wx.EVT_BUTTON, printHelloEvtHandle)
例:
寸法器-sizer,wx.BoxSizer->>help(wx.BoxSizer)-役割:追加されたコンポーネントのレイアウト位置を管理する-使用法:hbox=wx.BoxSizer([wx.HORIZONTAL]) vbox = wx.BoxSizer(wx.VERTICAL)-レイアウトを容易にするためにpanelを追加-コンポーネントを追加してsizerを管理する.add(コンポーネント、proportion=、flag=、border=)の例
#-*- encoding:UTF-8 -*-
import wx
app = wx.App()
win = wx.Frame(None, title="My Notebook", size=(410, 335))
panel = wx.Panel(win)
openButton = wx.Button(panel, label="Open")
saveButton = wx.Button(panel, label="Save")
filepathTxt = wx.TextCtrl(panel)
contentTxt = wx.TextCtrl(panel, style=wx.TE_MULTILINE)
# ,
# proportion : 1
# flag : expand
hbox = wx.BoxSizer()
hbox.Add(filepathTxt, proportion=1, flag=wx.EXPAND)
hbox.Add(openButton, proportion=0, flag=wx.LEFT, border=5)
hbox.Add(saveButton, proportion=0, flag=wx.LEFT, border=5)
# ,
bbox = wx.BoxSizer(wx.VERTICAL)
bbox.Add(hbox, proportion=0, flag=wx.EXPAND|wx.ALL, border=5)
bbox.Add(contentTxt, proportion=1,flag=wx.EXPAND|wx.LEFT|wx.BOTTOM|wx.RIGHT,border=5)
panel.SetSizer(bbox)
win.Show()
app.MainLoop()
2.wxPython-イベント処理
コンポーネントのBind(func)によってイベント処理関数をバインドする、例えば、ボタンをクリックしたときにコンソールに「hello」def printHelloEvetHandle(evt):print「hello」btnを印刷する.Bind(wx.EVT_BUTTON, printHelloEvtHandle)
例:
#-*- encoding:UTF-8 -*-
import wx
def openFileEventHandle(evt) :
filepath = filepathTxt.GetValue()
fopen = open(filepath)
content = fopen.read()
fopen.close()
contentTxt.SetValue(content)
def saveFileEventHandle(evt) :
filepath = filepathTxt.GetValue()
fopen = open(filepath, "w")
content = contentTxt.GetValue()
fopen.write(content)
fopen.close()
app = wx.App()
win = wx.Frame(None, title="My Notebook", size=(410, 335))
panel = wx.Panel(win)
openButton = wx.Button(panel, label="Open")
saveButton = wx.Button(panel, label="Save")
filepathTxt = wx.TextCtrl(panel)
contentTxt = wx.TextCtrl(panel, style=wx.TE_MULTILINE)
#
openButton.Bind(wx.EVT_BUTTON, openFileEventHandle)
saveButton.Bind(wx.EVT_BUTTON, saveFileEventHandle)
# ,
# proportion : 1
# flag : expand
hbox = wx.BoxSizer()
hbox.Add(filepathTxt, proportion=1, flag=wx.EXPAND)
hbox.Add(openButton, proportion=0, flag=wx.LEFT, border=5)
hbox.Add(saveButton, proportion=0, flag=wx.LEFT, border=5)
# ,
bbox = wx.BoxSizer(wx.VERTICAL)
bbox.Add(hbox, proportion=0, flag=wx.EXPAND|wx.ALL, border=5)
bbox.Add(contentTxt, proportion=1,flag=wx.EXPAND|wx.LEFT|wx.BOTTOM|wx.RIGHT,border=5)
panel.SetSizer(bbox)
win.Show()
app.MainLoop()