(三)Layout management in wxPython
一个wxpython应用是由多个widgets组成的 这些widgets在一个容器widgets里
有两种容器定位方式
(1) 绝对定位
(2) sizers
1 绝对定位
如果采用绝对定位 在重画窗口以后 widgets的位置和大小将不会变动
在不同平台上会有差别
改变应用的字体将会破坏layout
更换layout将会是一件很麻烦和单调的事情
下面一个比较例子
python 代码
-
-
-
-
-
- import wx
-
- class Absolute(wx.Frame):
- def __init__(self, parent, id, title):
-
- wx.Frame.__init__(self, parent, id, title, size=(250,180))
-
- panel = wx.Panel(self, -1)
-
- menubar = wx.MenuBar()
- file = wx.Menu()
- edit = wx.Menu()
- help = wx.Menu()
-
- menubar.Append(file, '&File')
- menubar.Append(edit, '&edit')
- menubar.Append(help, '&help')
-
- self.SetMenuBar(menubar)
-
- wx.TextCtrl(panel, -1, pos=(-1, -1), size=(250, 150))
-
- self.Centre()
- self.Show(True)
-
- app=wx.App(0)
- Absolute(None, -1, '')
- app.MainLoop()
得到以下两个窗口 后面一个是改变size以后的
2 使用sizers来定位
主要的sizers有以下几种
* wx.BoxSizer
* wx.StaticBoxSizer
* wx.GridSizer
* wx.FlexGridSizer
* wx.GridBagSizer
把上面的例子修改一下
python 代码
-
-
-
-
-
- import wx
-
- class Sizers(wx.Frame):
- def __init__(self, parent, id, title):
- wx.Frame.__init__(self, parent, id, title, size=(350,180))
-
-
-
- menubar = wx.MenuBar()
- file = wx.Menu()
- edit = wx.Menu()
- help = wx.Menu()
-
- menubar.Append(file, '&File')
- menubar.Append(edit, '&edit')
- menubar.Append(help, '&help')
-
- self.SetMenuBar(menubar)
-
-
-
- wx.TextCtrl(self, -1)
- self.Centre()
- self.Show(True)
-
- app=wx.App(0)
- Sizers(None, -1, '')
- app.MainLoop()
虽然没有使用sizers中的任何一种 但是wx.Frame有一个特别的内建的Sizer 我们可以把任何widgets放在wx.Frame里
都会自动的住进Frame的空间里 除了borders, menu, toolbar , statusbar
3 wx.BoxSizer
这个sizer是可以嵌套的 以此可以实现任何复杂的布局
box = wx.BoxSizer(integer orient)
box.Add(wx.Window window, integer proportion=0, integer flag = 0, integer border = 0)
分享到:
相关推荐
您可以在几分钟内编写一段...这篇文章是关于 wxPython,但 wxPython 实际是两件事物的组合体:Python 脚本语言和 GUI 功能的 wxWindows 库(关于 wxWindows 的介绍,请参阅 developerWorks上的 “细述 wxWindows” )。
### wxPython学习笔记 #### 一、简介 wxPython是一个为Python编程语言设计的图形用户界面(GUI)工具包。它允许Python程序员轻松地构建出功能丰富且强大的GUI应用程序。作为一个对wxWidgets库的Python绑定,...
用WxPython实现Sqlite3 里的数据管理通用界面,简单实现 查询,修改、新增、删除记录。 介绍可以看博客 https://blog.csdn.net/seakingx/article/details/93050958
wxPython入门教程前3章 wxPython入门教程前3章 wxPython入门教程前3章 wxPython入门教程前3章
**wxPython介绍** wxPython是Python编程语言中一个强大的GUI(图形用户界面)工具包,它使得开发者可以使用Python编写出具有本地外观和感觉的应用程序。wxPython是基于C++的wxWidgets库的Python绑定,提供了丰富的...
几本很不错的关于python gui的wxPython的书,包括“wxPython in Action(中文版)” 活学活用wxPython “《wxPython in Action》Noel Rappin, Robin Dunn著 2006年版”
1,导入 wxpython 库 import wx 2,建立窗体构造类 class 名字(wx.Frame): def __init__(self, parent, id): wx.Frame.__init__(self, parent, id, ‘工具’,size=(300, 200)) 3,建立 面板 panel = wx.Panel(self...
这个压缩包文件"wxPython-demo-4.0.6_wxpython官方demo_wxPython-demo_wxpython_DEMO_w"包含了wxPython的官方演示程序,是学习和探索wxPython功能的理想资源。 【wxPython Demo】是wxPython库附带的一系列示例和...
《wxPython in Action 活学活用wxPython》是一本深入浅出的教程,旨在帮助读者掌握使用wxPython这一强大的GUI(图形用户界面)工具包进行Python编程的方法。wxPython是Python编程语言中用于创建桌面应用的一个流行库...
3. 定义了一个名为_window的类,继承自wxFrame,这是wxPython中的一个基本窗口类。 4. `__init__`方法是初始化函数,创建了一个窗口实例,设置了窗口的大小、样式等属性。 5. 在窗口中添加了一个多行文本控件...
本教程旨在指导读者通过Python 3和wxPython库来学习图形用户界面(GUI)的编程基础。wxPython是一个开源的Python扩展库,基于wxWidgets C++库,它为Python提供了丰富的GUI组件,让开发者能够创建丰富的桌面应用程序。...
3. **初始化**:在类的构造函数中,设置OpenGL上下文属性,如颜色缓冲、深度缓冲等,并可能创建一个渲染线程或定时器,定期调用渲染方法。 4. **事件处理**:覆盖wx.EVT_SIZE事件,当窗口大小改变时,更新GLCanvas的...
【wxPython中文文档详解】 wxPython是一款用于创建GUI(图形用户界面)的Python库,它提供了丰富的组件和功能,使得开发者能够用Python语言构建出美观且功能强大的桌面应用程序。wxPython是基于流行的wxWidgets库,...
Python WxPython开源扫雷游戏PyMine为开源扫雷游戏PyMine 使用Python语言和WxPython UI框架。本例移植自开源例程JMine 请在程序所在目录使用python PyMine.py启动例程需要先安装Python 3.11和wxPython 4.2Python ...
3. **wxPython in Action.pdf** - 这可能是另一本关于使用wxPython的书籍,详细介绍了如何利用wxPython构建功能丰富的应用。 4. **wxPython 2.8 Application Development Cookbook Code.zip** - 与前面的书配套的源...
3. **py2exe-0.6.6.win32-py2.4.exe**:py2exe是一个Python的第三方模块,用于将Python脚本转换为独立的Windows可执行文件,方便在没有Python环境的机器上运行。 4. **ctypes-0.9.2.win32-py2.4.exe**:ctypes是...
3. **控件与组件**:详述各种控件的使用,如按钮、文本框、复选框、单选按钮、列表框、滑块等,以及如何在界面中添加它们。 4. **对话框和文件选择**:展示如何使用对话框(如消息对话框、输入对话框)以及文件选择...
wxPython是Python编程语言的一个GUI工具箱。他使得Python程序员能够轻松的创建具有健壮、功能强大的图形用户界面的程序。它是Python语言对流行的wxWidgets跨平台GUI工具库的绑定。而wxWidgets是用C++语言写成的。和...