3. wx.GridBagSizer()该类是wx.FlexGridSizer()的子类,它具有其父类的方法与属性,当然,它使用时比其父类更简单了。它不需要指定特定的行数与列数,完整根据它所管理的构件设置具体而定的。
原型:
-
- __init__(self, vgap=0, hgap=0)
- (Constructor)
-
- Constructor, with optional parameters to specify the gap between the rows and columns.
-
- Parameters:
- vgap
- (type=int)
-
- hgap
- (type=int)
-
-
-
-
- Add(self, item, pos, span=DefaultSpan, flag=0, border=0, userData=None)
-
- 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.
-
- Returns True if the item was successfully placed at the given cell position, False if something was already there.
-
- Parameters:
- pos
- (type=GBPosition)
-
- span
- (type=GBSpan)
-
- flag
- (type=int)
-
- border
- (type=int)
- .
- .
- .
- (原文: http://www.wxpython.org/docs/api/wx.GridBagSizer-class.html)
实例3:
- def __init__(self, parent):
- wx.Panel.__init__(self, parent, -1, wx.DefaultPosition, wx.DefaultSize)
- wred = wx.TextCtrl(self, wx.NewId(), 'red')
- wwhite = wx.TextCtrl(self, wx.NewId(), 'white')
- wblue = wx.TextCtrl(self, wx.NewId())
- wcyan = wx.TextCtrl(self, wx.NewId())
-
- vgap, hgap = 10, 20
- gbs = wx.GridBagSizer(vgap, hgap)
-
- b = 0
- # Add(self, item, pos, span=DefaultSpan, flag=0, border=0, userData=None)
- # pos (type=GBPosition) cell position
- # span(type=GBSPan)
- gbs.Add(wred, (1, 1), (1, 1), wx.EXPAND | wx.ALL, b)
- gbs.Add(wwhite, (2, 3), (1, 1), wx.EXPAND | wx.ALL, b)
- gbs.Add(wblue, (1, 0), (1, 1), wx.EXPAND | wx.ALL, b)
- gbs.Add(wcyan, (0, 0), (1, 1), wx.EXPAND | wx.ALL, b)
-
- gbs.AddGrowableRow(0) # 0/1/2...表示的行号或列号
- gbs.AddGrowableRow(1)
- gbs.AddGrowableRow(2)
- gbs.AddGrowableCol(0)
- gbs.AddGrowableCol(1)
- gbs.AddGrowableCol(3)
-
- 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界面的跳转。 首先,我们需要了解`wx.Frame`。它是wxPython中的一个核心类,用于创建应用程序的主窗口或子窗口。每个`wx.Frame`都可以包含多个其他控件,如按钮、文本框...
WxPython还提供了许多其他特性,如各种控件(按钮、文本框等)、事件处理、布局管理等,可以帮助开发者构建复杂而美观的GUI应用。对于更深入的学习,可以参考提供的相关链接,这些链接包含更多WxPython的使用方法和...
4. **对话框和框架**:wxPython提供了多种对话框(如OpenFileDialog、SaveFileDialog)和框架(如Frame、Panel),用于实现更复杂的用户交互,如文件操作、输入验证等。 5. **高级特性**:除了基本功能外,wxPython...
文档中,“变量”部分会详细介绍wxPython中使用到的各种对象和变量,这些变量通常代表了窗口、按钮、文本框等界面元素,或者是用来控制程序行为的状态标志。理解这些变量的含义和用法是构建界面的基础,例如`wx....
frame = wx.Frame(None, -1, "My First WxPython App") ``` 5. **添加控件**: 在窗口中可以添加各种控件,如按钮、文本框等。例如,创建一个按钮: ```python button = wx.Button(frame, -1, "Click Me!") ```...
wxPython中一个应用程序通常会有一个或多个Frame类的实例,每个实例都代表一个窗口。 在给定的示例代码中,我们看到如何定义一个wx.Frame的子类来创建一个窗口。在MyFrame类的构造函数中,调用了wx.Frame.__init__...
3. **框架(Frame)和面板(Panel)**:框架是wxPython中的顶级窗口,通常包含一个或多个面板。面板则常被用作容器,用于组织和布局控件。 4. **布局管理器**:为了使界面在不同平台上看起来一致,wxPython提供了...
**wxPython API手册详解** ...综上所述,wxPython API手册是学习和使用wxPython开发GUI应用的重要参考资料,它详细介绍了wxPython的各种组件、事件处理机制以及最佳实践,为开发者提供了丰富的工具和指导。
【wxPython】是一个基于Python语言的图形用户界面(GUI)工具包,它使用原生的窗口系统来构建应用程序,提供了一种跨平台的方式...教程中的实例和详细解释对于理解wxPython的用法非常有帮助,是学习过程中的宝贵资源。
4. wx.Frame类:讲解了wxPython中的框架窗口类wx.Frame的使用,包括窗口样式的常量、成员函数以及事件绑定器。 5. wx.Panel类:介绍了面板类wx.Panel在GUI设计中的应用。 6. GUI构建工具:探讨了使用GUI构建工具...
**二、wxPython 的核心概念** 1. **Frame**: 基本窗口,所有可见的 GUI 元素都包含在 Frame 内部。 2. **Panel**: 通常放在 Frame 内,用于组织控件,提供背景色和边框。 3. **Widget**: 包括按钮、文本框、列表框...
在“wxPython3.doc”、“wxPython1.doc”、“wxPython2.doc”和“wxPython”这些文件中,你将找到详细的API参考和教程。API文档将列出所有可用的类、方法和属性,而教程则可能逐步引导你完成从创建第一个窗口到构建...
frame = MyFrame(None, "Sample wxPython App") frame.Show(True) return True if __name__ == "__main__": app = MyApp(0) app.MainLoop() ``` - **定向wxPython程序的输出**: - 可以使用`wx.Log`类来...
首先,你需要创建一个wxPython的框架(Frame)并在其中添加一个窗体(Panel)。然后,利用PyOpenGL的GLCanvas类创建一个OpenGL画布,这个画布将在Panel上显示3D内容。在窗体的大小调整事件中,你需要更新GLCanvas的...
本教程将涵盖wxPython的安装、基本GUI元素、事件处理以及布局管理等方面的知识。 ### wxPython安装 wxPython的安装对于不同操作系统有着不同的指令。对于Windows和macOS平台,可以使用pip命令安装最新版本,或者...
2. **wxPython库介绍**:wxPython库提供了丰富的控件和组件,如Button、TextCtrl、Panel、Frame等,用于构建应用程序。熟悉这些控件的属性、方法和事件处理机制是使用wxPython的关键。 3. **控件的创建和布局**:...
frame = wx.Frame(None, title='Hello wxPython') frame.Show(True) app.MainLoop() ``` 这段简单的代码会创建一个空白窗口,显示 "Hello wxPython" 标题,并保持窗口打开状态,直到用户关闭它。 **wxPython 的...
**wxPython:Python中的GUI开发库** `wxPython` 是一个强大的Python库,用于构建图形用户界面(GUI)。它提供了丰富的控件集和高度可定制的组件,使得开发者能够使用Python语言来创建功能丰富的桌面应用程序,同时...