wxPython BoxSizer
2014-08-19 16:56
127 查看
这是比较常见的介绍wxPython BoxSizer的示例代码,但我看到的翻译都很糟糕,都不知所云。所以我仔细研究了一下,写下自己的看法。
import wx
class Example(wx.Frame):
def __init__(self,parent,title):
super(Example,self).__init__(parent,title=title,size=(500,300))
self.InitUI()
self.Centre()
self.Show()
def InitUI(self):
panel = wx.Panel(self)
font = wx.SystemSettings_GetFont(wx.SYS_SYSTEM_FONT)
font.SetPointSize(9)
vbox = wx.BoxSizer(wx.VERTICAL)
hbox1 = wx.BoxSizer(wx.HORIZONTAL)
st1 = wx.StaticText(panel,label='项目目录:'.decode('utf-8'))
st1.SetFont(font)
hbox1.Add(st1,flag=wx.RIGHT,border=8)
tc = wx.TextCtrl(panel)
hbox1.Add(tc,proportion=1)
vbox.Add(hbox1,flag=wx.EXPAND|wx.LEFT|wx.RIGHT|wx.TOP,border=10)
vbox.Add((-1,10))
hbox3 = wx.BoxSizer(wx.HORIZONTAL)
tc2 = wx.TextCtrl(panel, style=wx.TE_MULTILINE)
hbox3.Add(tc2, proportion=1, flag=wx.EXPAND)
vbox.Add(hbox3, proportion=1, flag=wx.LEFT|wx.RIGHT|wx.EXPAND,
border=10)
vbox.Add((-1, 25))
hbox4 = wx.BoxSizer(wx.HORIZONTAL)
cb1 = wx.CheckBox(panel, label='Case Sensitive')
cb1.SetFont(font)
hbox4.Add(cb1)
cb2 = wx.CheckBox(panel, label='Nested Classes')
cb2.SetFont(font)
hbox4.Add(cb2, flag=wx.LEFT, border=10)
cb3 = wx.CheckBox(panel, label='Non-Project classes')
cb3.SetFont(font)
hbox4.Add(cb3, flag=wx.LEFT, border=10)
vbox.Add(hbox4, flag=wx.LEFT, border=10)
vbox.Add((-1, 25))
hbox5 = wx.BoxSizer(wx.HORIZONTAL)
btn1 = wx.Button(panel, label='Ok', size=(70, 30))
hbox5.Add(btn1)
btn2 = wx.Button(panel, label='Close', size=(70, 30))
hbox5.Add(btn2, flag=wx.LEFT|wx.BOTTOM, border=5)
vbox.Add(hbox5, flag=wx.ALIGN_RIGHT|wx.RIGHT, border=10)
panel.SetSizer(vbox)
if __name__ == '__main__':
app = wx.App()
Example(None,title="RedMineHelper")
app.MainLoop()
这个代码是创造了一个类。
重点从InitUI这个函数开始看。
先是创造了一个Panel。
然后设置字体。
再然后创造了一个垂直的BoxSizer。我的理解是,垂直的BoxSizer里面放置的东西都是竖着放的,后一个在前一个的下面。
同理,水平BoxSizer里面放置的东西就是横着放的,后一个在前一个的右面。
所以,刚刚创建的垂直BoxSizer里面放着的5个水平BoxSizer是竖着放的。
第一个水平BoxSizer,是静态文字。flag参数,定义了这个BoxSizer的那个边框会被设置为border的边框宽度,如这个第一个水平BoxSizer,它的右边有宽度为8
然后一个vbox.Add((-1,10)),添加了10个像素的空白空间
import wx
class Example(wx.Frame):
def __init__(self,parent,title):
super(Example,self).__init__(parent,title=title,size=(500,300))
self.InitUI()
self.Centre()
self.Show()
def InitUI(self):
panel = wx.Panel(self)
font = wx.SystemSettings_GetFont(wx.SYS_SYSTEM_FONT)
font.SetPointSize(9)
vbox = wx.BoxSizer(wx.VERTICAL)
hbox1 = wx.BoxSizer(wx.HORIZONTAL)
st1 = wx.StaticText(panel,label='项目目录:'.decode('utf-8'))
st1.SetFont(font)
hbox1.Add(st1,flag=wx.RIGHT,border=8)
tc = wx.TextCtrl(panel)
hbox1.Add(tc,proportion=1)
vbox.Add(hbox1,flag=wx.EXPAND|wx.LEFT|wx.RIGHT|wx.TOP,border=10)
vbox.Add((-1,10))
hbox3 = wx.BoxSizer(wx.HORIZONTAL)
tc2 = wx.TextCtrl(panel, style=wx.TE_MULTILINE)
hbox3.Add(tc2, proportion=1, flag=wx.EXPAND)
vbox.Add(hbox3, proportion=1, flag=wx.LEFT|wx.RIGHT|wx.EXPAND,
border=10)
vbox.Add((-1, 25))
hbox4 = wx.BoxSizer(wx.HORIZONTAL)
cb1 = wx.CheckBox(panel, label='Case Sensitive')
cb1.SetFont(font)
hbox4.Add(cb1)
cb2 = wx.CheckBox(panel, label='Nested Classes')
cb2.SetFont(font)
hbox4.Add(cb2, flag=wx.LEFT, border=10)
cb3 = wx.CheckBox(panel, label='Non-Project classes')
cb3.SetFont(font)
hbox4.Add(cb3, flag=wx.LEFT, border=10)
vbox.Add(hbox4, flag=wx.LEFT, border=10)
vbox.Add((-1, 25))
hbox5 = wx.BoxSizer(wx.HORIZONTAL)
btn1 = wx.Button(panel, label='Ok', size=(70, 30))
hbox5.Add(btn1)
btn2 = wx.Button(panel, label='Close', size=(70, 30))
hbox5.Add(btn2, flag=wx.LEFT|wx.BOTTOM, border=5)
vbox.Add(hbox5, flag=wx.ALIGN_RIGHT|wx.RIGHT, border=10)
panel.SetSizer(vbox)
if __name__ == '__main__':
app = wx.App()
Example(None,title="RedMineHelper")
app.MainLoop()
这个代码是创造了一个类。
重点从InitUI这个函数开始看。
先是创造了一个Panel。
然后设置字体。
再然后创造了一个垂直的BoxSizer。我的理解是,垂直的BoxSizer里面放置的东西都是竖着放的,后一个在前一个的下面。
同理,水平BoxSizer里面放置的东西就是横着放的,后一个在前一个的右面。
所以,刚刚创建的垂直BoxSizer里面放着的5个水平BoxSizer是竖着放的。
第一个水平BoxSizer,是静态文字。flag参数,定义了这个BoxSizer的那个边框会被设置为border的边框宽度,如这个第一个水平BoxSizer,它的右边有宽度为8
然后一个vbox.Add((-1,10)),添加了10个像素的空白空间
相关文章推荐
- Python wxPython库Core组件BoxSizer用法示例
- wxPython控件学习之wx.BoxSizer
- wxPython的Core组件--BoxSizer
- wxPython学习2005-07-21
- 最简单的一个wxPython窗口
- wxPython中XRC文件i18n示例
- wxPython 的 ListCtrl 控件的列表模式和小图标模式下各项目行距调整
- wxPython 入门
- wxpython 学习笔记 第一天
- wxPython程序的退出
- wxPython做GUI:如何在Grid中响应鼠标移动事件
- wxpython的两个学习资料
- wxPython 笔记(3)基本结构
- wxPython 笔记(11)重定向程序输出到标准控制台窗口
- 最简单的wxPython的界面设计
- 使用WxPython进行Win32下Python编程
- wxPython 2.8 XRC Resource Editor Bug
- wxPython 界面设计利器:wxFormBuilder 入门
- 利用wxPython将word 文档转换为pdf文档
- wxPython实现的记事本