天天看点

wxPython boxsizer 使用

wxPython boxsizer 使用

import wx

def openfile(event):     # 定义打开文件事件
    path = path_text.GetValue()
    with open(path,"r",encoding="utf-8") as f:  # encoding参数是为了在打开文件时将编码转为utf8
        content_text.SetValue(f.read()) 


app = wx.App()
frame = wx.Frame(None,title = "Gui Test Editor",pos = (1000,200),size = (500,400))
panel=wx.Panel(frame) 
path_text = wx.TextCtrl(panel,pos = (5,5),size = (350,24))
open_button = wx.Button(panel,label = "打开",pos = (370,5),size = (50,24))
save_button = wx.Button(panel,label = "保存",pos = (430,5),size = (50,24))
content_text= wx.TextCtrl(panel,pos = (5,39),size = (475,300),style = wx.TE_MULTILINE)  # wx.TE_MULTILINE可以实现换行功能,若不加此功能文本文档显示为一行显示
open_button.Bind(wx.EVT_BUTTON,openfile)    # 绑定打开文件事件到open_button按钮上


box=wx.BoxSizer()
box.Add(path_text,proportion = 0,flag = wx.EXPAND|wx.ALL,border = 3) # 添加组件
    #proportion:相对比例
    #flag:填充的样式和方向,wx.EXPAND为完整填充,wx.ALL为填充的方向
    #border:边框
box.Add(open_button,proportion = 0,flag = wx.EXPAND|wx.ALL,border = 3) # 添加组件
box.Add(save_button,proportion = 0,flag = wx.EXPAND|wx.ALL,border = 3) # 添加组件
v_box = wx.BoxSizer(wx.VERTICAL) # wx.VERTICAL参数表示实例化一个垂直尺寸器
v_box.Add(box,proportion = 0,flag = wx.EXPAND|wx.ALL,border = 3) # 添加组件
v_box.Add(content_text,proportion = 1,flag = wx.EXPAND|wx.ALL,border = 3) # 添加组件
panel.SetSizer(v_box)
frame.Show() 
app.MainLoop()