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

The wxPython Guide笔记3

阅读更多
(三)Layout management in wxPython
一个wxpython应用是由多个widgets组成的 这些widgets在一个容器widgets里
有两种容器定位方式
(1) 绝对定位
(2) sizers
1 绝对定位
如果采用绝对定位 在重画窗口以后 widgets的位置和大小将不会变动
在不同平台上会有差别
改变应用的字体将会破坏layout
更换layout将会是一件很麻烦和单调的事情
下面一个比较例子

python 代码
  1. #!/usr/bin/python
  2. # absolute.py
  3. import wx
  4. class Absolute(wx.Frame):
  5. def __init__(self, parent, id, title):
  6. #修改size参数 看效果 size=(350, 220)
  7. wx.Frame.__init__(self, parent, id, title, size=(250,180))
  8. #添加一个panel到Frame 放置Text
  9. panel = wx.Panel(self, -1)
  10. menubar = wx.MenuBar()
  11. file = wx.Menu()
  12. edit = wx.Menu()
  13. help = wx.Menu()
  14. menubar.Append(file, '&File')
  15. menubar.Append(edit, '&edit')
  16. menubar.Append(help, '&help')
  17. self.SetMenuBar(menubar)
  18. wx.TextCtrl(panel, -1, pos=(-1, -1), size=(250, 150))
  19. self.Centre()
  20. self.Show(True)
  21. app=wx.App(0)
  22. Absolute(None, -1, '')
  23. app.MainLoop()

得到以下两个窗口 后面一个是改变size以后的



2 使用sizers来定位

主要的sizers有以下几种
* wx.BoxSizer
* wx.StaticBoxSizer
* wx.GridSizer
* wx.FlexGridSizer
* wx.GridBagSizer
把上面的例子修改一下
python 代码
  1. #!/usr/bin/python
  2. # Sizers.py
  3. import wx
  4. class Sizers(wx.Frame):
  5. def __init__(self, parent, id, title):
  6. wx.Frame.__init__(self, parent, id, title, size=(350,180))
  7. #添加一个panel到Frame 放置Text
  8. #panel = wx.Panel(self, -1)
  9. menubar = wx.MenuBar()
  10. file = wx.Menu()
  11. edit = wx.Menu()
  12. help = wx.Menu()
  13. menubar.Append(file, '&File')
  14. menubar.Append(edit, '&edit')
  15. menubar.Append(help, '&help')
  16. self.SetMenuBar(menubar)
  17. #wx.TextCtrl(panel, -1, pos=(-1, -1), size=(250, 150))
  18. wx.TextCtrl(self, -1)
  19. self.Centre()
  20. self.Show(True)
  21. app=wx.App(0)
  22. Sizers(None, -1, '')
  23. 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,但 wxPython 实际是两件事物的组合体:Python 脚本语言和 GUI 功能的 wxWindows 库(关于 wxWindows 的介绍,请参阅 developerWorks上的 “细述 wxWindows” )。

    wxpython学习笔记

    ### wxPython学习笔记 #### 一、简介 wxPython是一个为Python编程语言设计的图形用户界面(GUI)工具包。它允许Python程序员轻松地构建出功能丰富且强大的GUI应用程序。作为一个对wxWidgets库的Python绑定,...

    用WxPython实现Sqlite3 里的数据管理界面

    用WxPython实现Sqlite3 里的数据管理通用界面,简单实现 查询,修改、新增、删除记录。 介绍可以看博客 https://blog.csdn.net/seakingx/article/details/93050958

    wxPython入门教程前3章

    wxPython入门教程前3章 wxPython入门教程前3章 wxPython入门教程前3章 wxPython入门教程前3章

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

    **wxPython介绍** wxPython是Python编程语言中一个强大的GUI(图形用户界面)工具包,它使得开发者可以使用Python编写出具有本地外观和感觉的应用程序。wxPython是基于C++的wxWidgets库的Python绑定,提供了丰富的...

    wxPython几本好书

    几本很不错的关于python gui的wxPython的书,包括“wxPython in Action(中文版)” 活学活用wxPython “《wxPython in Action》Noel Rappin, Robin Dunn著 2006年版”

    wxpython 学习笔记 第一天

    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-demo-4.0.6_wxpython官方demo_wxPython-demo_wxpython_DEMO_w"包含了wxPython的官方演示程序,是学习和探索wxPython功能的理想资源。 【wxPython Demo】是wxPython库附带的一系列示例和...

    wxPython in Action 活学活用wxPython

    《wxPython in Action 活学活用wxPython》是一本深入浅出的教程,旨在帮助读者掌握使用wxPython这一强大的GUI(图形用户界面)工具包进行Python编程的方法。wxPython是Python编程语言中用于创建桌面应用的一个流行库...

    wxPython-入门教程.pdf

    3. 定义了一个名为_window的类,继承自wxFrame,这是wxPython中的一个基本窗口类。 4. `__init__`方法是初始化函数,创建了一个窗口实例,设置了窗口的大小、样式等属性。 5. 在窗口中添加了一个多行文本控件...

    python3+wxpython编程教程

    本教程旨在指导读者通过Python 3和wxPython库来学习图形用户界面(GUI)的编程基础。wxPython是一个开源的Python扩展库,基于wxWidgets C++库,它为Python提供了丰富的GUI组件,让开发者能够创建丰富的桌面应用程序。...

    wxPython and PyOpengl源码

    3. **初始化**:在类的构造函数中,设置OpenGL上下文属性,如颜色缓冲、深度缓冲等,并可能创建一个渲染线程或定时器,定期调用渲染方法。 4. **事件处理**:覆盖wx.EVT_SIZE事件,当窗口大小改变时,更新GLCanvas的...

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

    【wxPython中文文档详解】 wxPython是一款用于创建GUI(图形用户界面)的Python库,它提供了丰富的组件和功能,使得开发者能够用Python语言构建出美观且功能强大的桌面应用程序。wxPython是基于流行的wxWidgets库,...

    Python 的WxPython库开源扫雷游戏

    Python WxPython开源扫雷游戏PyMine为开源扫雷游戏PyMine 使用Python语言和WxPython UI框架。本例移植自开源例程JMine 请在程序所在目录使用python PyMine.py启动例程需要先安装Python 3.11和wxPython 4.2Python ...

    wxpython3.9_py2.7

    3. **wxPython in Action.pdf** - 这可能是另一本关于使用wxPython的书籍,详细介绍了如何利用wxPython构建功能丰富的应用。 4. **wxPython 2.8 Application Development Cookbook Code.zip** - 与前面的书配套的源...

    python2.4 and wxPython

    3. **py2exe-0.6.6.win32-py2.4.exe**:py2exe是一个Python的第三方模块,用于将Python脚本转换为独立的Windows可执行文件,方便在没有Python环境的机器上运行。 4. **ctypes-0.9.2.win32-py2.4.exe**:ctypes是...

    wxPython教程及实例

    3. **控件与组件**:详述各种控件的使用,如按钮、文本框、复选框、单选按钮、列表框、滑块等,以及如何在界面中添加它们。 4. **对话框和文件选择**:展示如何使用对话框(如消息对话框、输入对话框)以及文件选择...

    wxpython学习笔记(推荐查看)

    wxPython是Python编程语言的一个GUI工具箱。他使得Python程序员能够轻松的创建具有健壮、功能强大的图形用户界面的程序。它是Python语言对流行的wxWidgets跨平台GUI工具库的绑定。而wxWidgets是用C++语言写成的。和...

Global site tag (gtag.js) - Google Analytics