wx.BoxSizer

转自:http://wwty.iteye.com/blog/385519

wx.BoxSizer:

Python代码  

  1. box = wx.BoxSizer(integer orient)

The orientation can be wx.VERTICAL or wx.HORIZONTAL

Python代码  

  1. box.Add(wx.Window window, integer proportion=0, integer flag = 0, integer border = 0)

参数解读:

1、proportion:

proportion参数定义了构件在既定方向上所占空间的比例,是相对的,相对于其他组件
举个例子:我们有三个按钮,proportion的值分别是0,1,2。三个按钮被放置到水平方向的sizer当中,Button with proportion 0 will not change at all。但是, Button with proportion 2将会比the one with proportion 1大两倍在水平位置上。

Python代码  

  1. import wx
  2. class Border(wx.Frame):
  3. def __init__(self, parent, id, title):
  4. wx.Frame.__init__(self, parent, id, title, size=(250, 200))
  5. panel = wx.Panel(self, -1,size=(250,200))
  6. panel.SetBackgroundColour(‘white‘)
  7. boxsizer1 = wx.BoxSizer(wx.VERTICAL)
  8. btn1 = wx.Button(panel, -1, ‘Botton1‘)
  9. btn2 = wx.Button(panel, -1, ‘Botton2‘)
  10. btn3 = wx.Button(panel, -1, ‘Botton3‘)
  11. boxsizer1.Add(btn1, proportion=0, flag=wx.EXPAND, border=0)
  12. boxsizer1.Add(btn2, proportion=1, flag=wx.ALL, border=0)
  13. boxsizer1.Add(btn3, proportion=2, flag=wx.ALL, border=0)
  14. self.SetSizer(boxsizer1)
  15. self.Centre()
  16. self.Show(True)
  17. app = wx.App()
  18. Border(None, -1, ‘‘)
  19. app.MainLoop()

通过这个例子可以观察出proportion参数的作用

2、flag:

flag参数可以使用 ‘|‘来产生组合的多个flags。

flag参数定义了两个主要的行为:

第一个参数是窗口的边框:这个参数决定了边框的宽度,在此决定窗口某一侧添加边框的事件。

另一个参数决定了sizer事件的行为,当sizer改变时,空间的分配。并且分配的多少依赖于特定种类的sizer被使用。

3、border:
Determines the border width, if the flag parameter is set to include any border flag

最后特别说明:

flag和border参数两者结合起来使用的。
vbox.Add(midPan, 1, wx.EXPAND | wx.ALL, 20)
flag=wx.EXPAND | wx.ALL,border=20---------这代表的是midPan这个组件将充分的利用空间,但是会从四周预留出来20px作为border。所以如果说使用了wx.EXPAND flag,而没有设定border,那么我们的组件将充分的利用分配的空间。

最后,我们也能去定义调整我们的组件。但是这种调整是指在sizer分配给当前构件的空间之内的一种调整。

We do it with the following flags : 
wx.ALIGN_LEFT 
wx.ALIGN_RIGHT 
wx.ALIGN_TOP 
wx.ALIGN_BOTTOM 
wx.ALIGN_CENTER_VERTICAL 
wx.ALIGN_CENTER_HORIZONTAL 
wx.ALIGN_CENTER

看下面一个例子:

Python代码  

  1. hbox5 = wx.BoxSizer(wx.HORIZONTAL)
  2. btn1 = wx.Button(panel, -1, ‘Ok‘, size=(70, 30))
  3. hbox5.Add(btn1, 0)
  4. btn2 = wx.Button(panel, -1, ‘Close‘, size=(70, 30))
  5. hbox5.Add(btn2, 0, wx.LEFT | wx.BOTTOM , 5)
  6. vbox.Add(hbox5, 0, wx.ALIGN_RIGHT | wx.RIGHT, 10)

这个例子将已有的hbox5放置到vbox当总,而wx.ALIGN_RIGHT所起到的作用就是在hbox5这个sizer当中的横向往右放置的调整

下面是常用的flag参数:

1、These flags are used to specify which side(s) of the sizer item that the border width will apply to.

  • wx.TOP
  • wx.BOTTOM
  • wx.LEFT
  • wx.RIGHT
  • wx.ALL

2、The item will be expanded to fill the space allotted to the item.

wx.EXPAND

还有两个没有列出来,如果用到的话,可以查帮助文档

最后,有些情况下我们需要添加一些空白的区域到我们的应用当中,可以使用下面的代码:

Python代码  

  1. vbox = wx.BoxSizer(wx.VERTICAL)
  2. vbox.Add((-1, 25))

vbox.Add((-1, 25))---添加了25个像素的空白空间

原文地址:https://www.cnblogs.com/wolun666/p/9760804.html

时间: 2024-10-10 04:32:18

wx.BoxSizer的相关文章

wxpython布局管理部件wx.gridbagsizer用法示例

text = ("This is text box")         panel = wx.Panel(self, -1)         chkAll1 = wx.CheckBox(panel, ID_CHKBOX_CAN_SEL_ALL, u'全选')                chkKnown = wx.CheckBox(panel, ID_CHKBOX_CAN_UNKNOWN, u'不会')         chkUnknow = wx.CheckBox(panel, I

wx.Dialog

wx.Dialog A dialog box is a window with a title bar and sometimes a system menu, which can be moved around the screen. It can contain controls and other windows and is often used to allow the user to make some choice or to answer a question. Dialogs

wx.ListCtrl简单使用例子

效果图: 示例代码: [python] view plaincopy #! /usr/bin/env python #coding=utf-8 import wx import sys packages = [('jessica alba', 'pomona', '1981'), ('sigourney weaver', 'new york', '1949'), ('angelina jolie', 'los angeles', '1975'), ('natalie portman', 'jer

wx.Panel

Panel是窗口的容器,通常其大小与Frame一样,在其上放置各种控件,这样可将窗口内容与工具栏及状态栏区分开,能过TAB键可遍历Panel中的元素 小构件,如按钮,文本框等被放置在面板窗口. wx.Panel类通常是被放在一个wxFrame对象中.这个类也继承自wxWindow类. 虽然控件可以手动放置在面板指定屏幕坐标的位置,建议使用合适的布局方案,称为大小测定器(sizer)在wxPython中,为更好地控制布局和解决调整大小的问题. 在wxPanel构造,父参数是wx.Frame对象,在

wx鼠标拖动事件

#coding:UTF-8 import wx app = wx.App() def dragEVT(event): if event.ButtonDown(): panel1.SetPosition(event.GetPosition()) elif event.Dragging(): panel1.SetPosition(event.GetPosition()) elif event.ButtonUp(): panel1.SetPosition(event.GetPosition()) fr

dddd

# -*- coding: utf-8 -*- import wx import modelmngr_execute ########################################################################################## class MyFrame1 ( wx.Frame ): def __init__( self, parent ): wx.Frame.__init__ ( self, parent, id = wx

<<Python基础教程>>学习笔记 | 第12章 | 图形用户界面

Python支持的工具包非常多.但没有一个被觉得标准的工具包.用户选择的自由度大些.本章主要介绍最成熟的跨平台工具包wxPython.官方文档: http://wxpython.org/ ------ 丰富的平台: Tkinter实际上类似于标准,由于它被用于大多数正式的Python GUI程序.并且它是Windows二进制公布版的一部分. 可是在UNIX上要自己编译安装. 还有一个越来越受欢迎的工具是wxPython. 这是个成熟并且特性丰富的包,也是Python之父,Guido van Ro

wxpython 布局管理

一个典型的应用程序是由不同的部件.这些小部件被放进容器部件.一个程序员必须管理应用程序的布局.这不是一项容易的任务.在wxPython我们有两个选择. *absolute positioning*sizers Absolute Positioning绝对位置 程序员指定位置和大小的每个小部件以像素为单位.当你使用绝对定位,你必须了解一些事情. 1.如果你改变窗口大小,大小和位置的一个小部件不改变 2.在各种平台上的应用程序看起来不同 3.更改字体在您的应用程序可能会破坏布局 4.如果你决定改变你

Python体验(08)-图形界面之工具栏和状态栏

# coding=utf-8 import wx # 导入必须的Python包 class MenuForm(wx.Frame): def OnQuit(self,event): self.Close() def OnOpen(self,event): self.statusbar.SetStatusText('Open a File!') def __init__(self,parent,ID,title): wx.Frame.__init__(self,parent,ID,title) #m