`
purpen
  • 浏览: 796746 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

wxPython frame的布局详细解释(二)

阅读更多
3. wx.GridBagSizer()该类是wx.FlexGridSizer()的子类,它具有其父类的方法与属性,当然,它使用时比其父类更简单了。它不需要指定特定的行数与列数,完整根据它所管理的构件设置具体而定的。

原型:

 
  1. #构造函数  
  2. __init__(self, vgap=0, hgap=0)  
  3. (Constructor)  
  4.   
  5. Constructor, with optional parameters to specify the gap between the rows and columns.  
  6.   
  7.     Parameters:  
  8.         vgap  
  9.                    (type=int)  
  10.   
  11.         hgap  
  12.                    (type=int)  
  13.   
  14. #添加单个构件到boxsizer  
  15. # pos 表示的单元格的点(cell position可以看做是坐标)  
  16. # span 表示的单个或合并的单元格  
  17. Add(self, item, pos, span=DefaultSpan, flag=0, border=0, userData=None)  
  18.   
  19. Adds an item to the sizer at the grid cell pos, optionally spanning more than one row or column as specified with span. The remaining args behave similarly to wx.Sizer.Add.  
  20.   
  21. Returns True if the item was successfully placed at the given cell position, False if something was already there.  
  22.   
  23.     Parameters:  
  24.         pos  
  25.                    (type=GBPosition)  
  26.   
  27.         span  
  28.                    (type=GBSpan)  
  29.   
  30.         flag  
  31.                    (type=int)  
  32.   
  33.         border  
  34.                    (type=int)  
  35. .  
  36. .  
  37. .  
  38. (原文: http://www.wxpython.org/docs/api/wx.GridBagSizer-class.html)  

实例3:

 
  1. def __init__(self, parent):  
  2.         wx.Panel.__init__(self, parent, -1, wx.DefaultPosition, wx.DefaultSize)  
  3.         wred = wx.TextCtrl(self, wx.NewId(), 'red')  
  4.         wwhite = wx.TextCtrl(self, wx.NewId(), 'white')  
  5.         wblue = wx.TextCtrl(self, wx.NewId())  
  6.         wcyan = wx.TextCtrl(self, wx.NewId())  
  7.           
  8.         vgap, hgap = 1020  
  9.         gbs = wx.GridBagSizer(vgap, hgap)  
  10.           
  11.         b = 0  
  12.         # Add(self, item, pos, span=DefaultSpan, flag=0, border=0, userData=None)  
  13.         # pos (type=GBPosition) cell position  
  14.         # span(type=GBSPan)   
  15.         gbs.Add(wred, (11), (11), wx.EXPAND | wx.ALL, b)  
  16.         gbs.Add(wwhite, (23), (11), wx.EXPAND | wx.ALL, b)  
  17.         gbs.Add(wblue, (10), (11), wx.EXPAND | wx.ALL, b)  
  18.         gbs.Add(wcyan, (00), (11), wx.EXPAND | wx.ALL, b)  
  19.           
  20.         gbs.AddGrowableRow(0) # 0/1/2...表示的行号或列号  
  21.         gbs.AddGrowableRow(1)  
  22.         gbs.AddGrowableRow(2)  
  23.         gbs.AddGrowableCol(0)  
  24.         gbs.AddGrowableCol(1)  
  25.         gbs.AddGrowableCol(3)  
  26.           
  27.         self.SetSizer(gbs)  

Note: 实例3中就表示形成了一个三行四列的虚拟表格(如果再添加一个gbs.Add(item, (4, 6), (1, 1) ....)那么它就是五行七列的).AddGrowableRow()与AddGrowable()表示指定的idx行或指定的idx列伸缩.


4. wx.StaticBoxSizer() 此使用方法与wx.BoxSizer()基本相同,就不多说。

   (原型: http://www.wxpython.org/docs/api/wx.StaticBoxSizer-class.html)


总结: wxPython进行布局定位,我现在就学习了这四种方法,至于其他的方法,以后学习了再补充完整。在实际的运用中,不能单靠某一种方法,往往是多种方法配合使用,才能发挥所长,使代码更简洁,界面更美观等等.以上纯属个人观点,有些说法或写法不准确之处,还望指教,多谢!
分享到:
评论

相关推荐

    wxPython实现Frame界面的跳转

    本教程将详细探讨如何使用wxPython实现Frame界面的跳转。 首先,我们需要了解`wx.Frame`。它是wxPython中的一个核心类,用于创建应用程序的主窗口或子窗口。每个`wx.Frame`都可以包含多个其他控件,如按钮、文本框...

    python用WxPython库实现无边框窗体和透明窗体实现方法详解

    WxPython还提供了许多其他特性,如各种控件(按钮、文本框等)、事件处理、布局管理等,可以帮助开发者构建复杂而美观的GUI应用。对于更深入的学习,可以参考提供的相关链接,这些链接包含更多WxPython的使用方法和...

    wxPython-demo-4.0.3.tar:wxPython官方demo

    4. **对话框和框架**:wxPython提供了多种对话框(如OpenFileDialog、SaveFileDialog)和框架(如Frame、Panel),用于实现更复杂的用户交互,如文件操作、输入验证等。 5. **高级特性**:除了基本功能外,wxPython...

    wxpython中文文档(极好查询学习)

    文档中,“变量”部分会详细介绍wxPython中使用到的各种对象和变量,这些变量通常代表了窗口、按钮、文本框等界面元素,或者是用来控制程序行为的状态标志。理解这些变量的含义和用法是构建界面的基础,例如`wx....

    wxpython的一些实例

    frame = wx.Frame(None, -1, "My First WxPython App") ``` 5. **添加控件**: 在窗口中可以添加各种控件,如按钮、文本框等。例如,创建一个按钮: ```python button = wx.Button(frame, -1, "Click Me!") ```...

    wxPython多个窗口的基本结构

    wxPython中一个应用程序通常会有一个或多个Frame类的实例,每个实例都代表一个窗口。 在给定的示例代码中,我们看到如何定义一个wx.Frame的子类来创建一个窗口。在MyFrame类的构造函数中,调用了wx.Frame.__init__...

    wxPython Demo

    3. **框架(Frame)和面板(Panel)**:框架是wxPython中的顶级窗口,通常包含一个或多个面板。面板则常被用作容器,用于组织和布局控件。 4. **布局管理器**:为了使界面在不同平台上看起来一致,wxPython提供了...

    wxpython_api手册

    **wxPython API手册详解** ...综上所述,wxPython API手册是学习和使用wxPython开发GUI应用的重要参考资料,它详细介绍了wxPython的各种组件、事件处理机制以及最佳实践,为开发者提供了丰富的工具和指导。

    wxPython中文教程.doc

    【wxPython】是一个基于Python语言的图形用户界面(GUI)工具包,它使用原生的窗口系统来构建应用程序,提供了一种跨平台的方式...教程中的实例和详细解释对于理解wxPython的用法非常有帮助,是学习过程中的宝贵资源。

    wxpython tutorial 教程

    4. wx.Frame类:讲解了wxPython中的框架窗口类wx.Frame的使用,包括窗口样式的常量、成员函数以及事件绑定器。 5. wx.Panel类:介绍了面板类wx.Panel在GUI设计中的应用。 6. GUI构建工具:探讨了使用GUI构建工具...

    wxPython开发参考书籍

    **二、wxPython 的核心概念** 1. **Frame**: 基本窗口,所有可见的 GUI 元素都包含在 Frame 内部。 2. **Panel**: 通常放在 Frame 内,用于组织控件,提供背景色和边框。 3. **Widget**: 包括按钮、文本框、列表框...

    wxPython4.0 api && doc

    在“wxPython3.doc”、“wxPython1.doc”、“wxPython2.doc”和“wxPython”这些文件中,你将找到详细的API参考和教程。API文档将列出所有可用的类、方法和属性,而教程则可能逐步引导你完成从创建第一个窗口到构建...

    Part1 wxPython入门

    frame = MyFrame(None, "Sample wxPython App") frame.Show(True) return True if __name__ == "__main__": app = MyApp(0) app.MainLoop() ``` - **定向wxPython程序的输出**: - 可以使用`wx.Log`类来...

    wxPython and PyOpengl源码

    首先,你需要创建一个wxPython的框架(Frame)并在其中添加一个窗体(Panel)。然后,利用PyOpenGL的GLCanvas类创建一个OpenGL画布,这个画布将在Panel上显示3D内容。在窗体的大小调整事件中,你需要更新GLCanvas的...

    python3+wxpython编程教程

    本教程将涵盖wxPython的安装、基本GUI元素、事件处理以及布局管理等方面的知识。 ### wxPython安装 wxPython的安装对于不同操作系统有着不同的指令。对于Windows和macOS平台,可以使用pip命令安装最新版本,或者...

    wxpython 教程

    2. **wxPython库介绍**:wxPython库提供了丰富的控件和组件,如Button、TextCtrl、Panel、Frame等,用于构建应用程序。熟悉这些控件的属性、方法和事件处理机制是使用wxPython的关键。 3. **控件的创建和布局**:...

    wxPython3.0-win64-3.0.2.0-py27(64位系统安装包)

    frame = wx.Frame(None, title='Hello wxPython') frame.Show(True) app.MainLoop() ``` 这段简单的代码会创建一个空白窗口,显示 "Hello wxPython" 标题,并保持窗口打开状态,直到用户关闭它。 **wxPython 的...

    wxpython python开发图形界面

    **wxPython:Python中的GUI开发库** `wxPython` 是一个强大的Python库,用于构建图形用户界面(GUI)。它提供了丰富的控件集和高度可定制的组件,使得开发者能够使用Python语言来创建功能丰富的桌面应用程序,同时...

Global site tag (gtag.js) - Google Analytics