初识wxPython

时间:2023-03-09 14:45:56
初识wxPython

wxPython是包装C++编写的wxWidgets跨平台的GUI组件

安装wxPython

pip install wxpython
import wx

def load(event):
    file = open(filename.GetValue(), encoding='utf8')
    contents.SetValue(file.read())
    file.close()
def save(event):
    file = open(filename.GetValue(),'w', encoding='utf8')
    file.write(contents.GetValue())
    file.close()

app = wx.App()  # 负责幕后的所有初始化,如果,wx.App()不能用,那么就用wx.PySimpleApp()代替,但即将弃用
# app = wx.PySimpleApp()
win = wx.Frame(None, title='GUI test',size=(410, 335))  # 整个窗口的大小

bkg = wx.Panel(win)

loadButton = wx.Button(bkg, label='Open')
loadButton.Bind(wx.EVT_BUTTON, load)

saveButton = wx.Button(bkg, label='Save')
saveButton.Bind(wx.EVT_BUTTON,save)

filename = wx.TextCtrl(bkg)

contents = wx.TextCtrl(bkg, style=wx.TE_MULTILINE | wx.HSCROLL)
hbox = wx.BoxSizer()
hbox.Add(filename, proportion=1, flag=wx.EXPAND)
hbox.Add(loadButton, proportion=0, flag=wx.LEFT, border=5)
hbox.Add(saveButton, proportion=0, flag=wx.LEFT, border=5)

vbox = wx.BoxSizer(wx.VERTICAL)
vbox.Add(hbox, proportion=0, flag=wx.EXPAND | wx.ALL, border=5)
vbox.Add(contents, proportion=0, flag=wx.EXPAND | wx.LEFT | wx.BOTTOM | wx.RIGHT, border=5)

bkg.SetSizer(vbox)

win.Show()  # hold窗口
app.MainLoop()  # 上面不hold住,窗口就会一直隐藏

demo


End