wxpython 学习之 --窗口分割
2020-12-13 15:33
标签:python 学习 default ack append bsp nes form class 提示信息 运行结果: 在这里做了一些实验,总结如下: 1.在self.ParentWindow.SplitVertically(self.lpanel,self.rpanel,100)中,100即SashPosition=100,是指左边的窗口大小。 2.SashPosition=0:平均分割窗口;但是当设定为0的时候没有效果,要结合EVT_ERASE_BACKGROUND来使用 3.当使用了self.Bind(wx.EVT_ERASE_BACKGROUND,self.EraseBack)后,self.ParentWindow.SplitVertically(self.lpanel,self.rpanel,100)中100便无效了,会采用EraseBack里设定的值。 wxpython 学习之 --窗口分割 标签:python 学习 default ack append bsp nes form class 提示信息 原文地址:https://www.cnblogs.com/xia-dong/p/11612371.html#coding:utf-8
import wx
import os
class MyApp(wx.App):
def __init__(self):
super(MyApp,self).__init__()
class MyFrame(wx.Frame):
def __init__(self,title=‘test‘,size=wx.DefaultSize):
super(MyFrame,self).__init__(None,wx.ID_ANY,title=title,size=size,style=wx.DEFAULT_FRAME_STYLE^wx.MINIMIZE_BOX)
self.Center()
#self.SetSize(700,700)
#self.SetTitle(‘aaa‘)
self.InitMenuBar()
self.InitStatusBar()
self.splitwindow()
#self.Bind(wx.EVT_ERASE_BACKGROUND,self.EraseBack)
def EraseBack(self,event):
self.ParentWindow.SetSashPosition(0)
def splitwindow(self):
self.ParentWindow=wx.SplitterWindow(self) #创建分割窗口
self.lpanel=wx.Panel(self.ParentWindow) #创建左面板
self.rpanel=wx.Panel(self.ParentWindow) #创建右面板
self.lpanel.SetBackgroundColour(‘#949449‘)
self.rpanel.SetBackgroundColour(colour=‘RED‘)
self.ParentWindow.SplitVertically(self.lpanel,self.rpanel,100)
self.ParentWindow.SetMinimumPaneSize(50) #设定最小的窗口不能小于50
def InitMenuBar(self):
#创建一个menubar
menuBar = wx.MenuBar()
#创建两个menu
filemenu = wx.Menu()
aboutmenu = wx.Menu()
#filemenu添加一个menuopen,关联的ID为wx.ID_OPEN,名字为Open,如果有状态栏,则状态栏里显示‘打开文件’
menuopen = filemenu.Append(wx.ID_OPEN,‘Open‘,‘打开文件‘)
#filemenu添加一个menu分隔符
filemenu.AppendSeparator()
menusave = filemenu.Append(wx.ID_SAVE,‘Save‘,‘保存当前设置‘)
filemenu.AppendSeparator()
menuexit = filemenu.Append(wx.ID_EXIT,‘Exit‘,‘退出程序‘)
menuBar.Append(filemenu,‘File‘)
menuabout = aboutmenu.Append(wx.ID_ABOUT,‘Info‘,‘Information‘)
menuBar.Append(aboutmenu,‘Info‘)
#将menu与函数绑定
self.Bind(wx.EVT_MENU,self.Exit,menuexit)
self.Bind(wx.EVT_MENU,self.Info,menuabout)
self.Bind(wx.EVT_MENU,self.Open,menuopen)
self.Bind(wx.EVT_MENU,self.Save,menusave)
self.SetMenuBar(menuBar)
def Exit(self,event):
print ‘aaaa‘
self.Close()
def Open(self,event):
self.dirname=‘‘
self.filename=‘‘
dlg = wx.FileDialog(self,‘选择文件‘,self.dirname,‘‘,‘*.csv*‘,wx.FD_OPEN)
if dlg.ShowModal() == wx.ID_OK:
self.filename = dlg.GetFilename()
self.dirname = dlg.GetDirectory()
self.FilePath = os.path.join(self.dirname,self.filename)
return self.FilePath
def Save(self):
#可以将要保存的东西放入本地磁盘
pass
def Info(self,event):
self.messageinfo=‘Author:testuser\nDate:2019/5/21\nVersion:0.1‘
message = wx.MessageDialog(self,self.messageinfo,‘INFO‘,wx.OK)
message.ShowModal()
message.Destroy()
def InitStatusBar(self):
#创建状态栏
statusbar = self.CreateStatusBar()
#将状态栏分割为3个部分
statusbar.SetFieldsCount(3)
#分割状态栏的比例为3:2:1,用负数表示
statusbar.SetStatusWidths([-3,-2,-1])
#每部分状态栏显示的值,当鼠标停在menu上时,0号状态栏会临时显示上面menu里的提示信息
statusbar.SetStatusText(‘1111‘,0)
statusbar.SetStatusText(‘2222‘,1)
statusbar.SetStatusText(‘3333‘,2)
if __name__ == ‘__main__‘:
app = MyApp()
frame = MyFrame(title=‘wx-test‘,size=(400,300))
frame.Show()
app.MainLoop()
self.Bind(wx.EVT_ERASE_BACKGROUND,self.EraseBack)
def EraseBack(self,event):
self.ParentWindow.SetSashPosition(0)
文章标题:wxpython 学习之 --窗口分割
文章链接:http://soscw.com/index.php/essay/35212.html