DESC:
初次接触wxPython,通过该模块示例教程首次完成了UI界面的布局,源代码来源于python基础教程-Magnus Lie HetLAnd
涉及的知识点:
1.使用尺寸其BoxSizer进行智能布局
2.基于事件处理机制、文件读写相关知识实现了打开文件和保存文件;
wx.App() 应用本身,是GUI实现的基础方法
wx.Frame() 代理C++的Frame类
wx.Panel() 代理C++的Panel类
wx.Button 用于对话框和Panel上
button.bind 用于绑定用户出发事件和自定义处理函数的方法
wx.Pabel.SetSizer(wx.BoxSizer())
ps:详细原理、更多GUI方法待进一步研究后补充!
#!/usr/bin/env python
# -*- utf-8 -*-
import wx
def load(event):
file = open(filename.GetValue())
contents.SetValue(file.read())
file.close()
def save(event):
file = open(filename.GetValue(),'w')
file.write(contents.GetValue())
file.close()
app = wx.App()
win = wx.Frame(None,title='Simple Editor',size=(410,355))
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=1,flag=wx.EXPAND|wx.LEFT|wx.BOTTOM|wx.RIGHT,border=5)
bkg.SetSizer(vbox)
win.Show()
app.MainLoop()