您的位置:首页 > 编程语言 > Python开发

GUI库wxPython学习

2016-07-05 23:30 363 查看
现在用的教材讲了这个就先研究一下。

前置知识:

Python中类的创建方法

Class className(object):->默认为object,否则为继承的父类。

         DefmethodName(self):->默认参数有self,其他为输入参数。

         方法内部创建的变量为私有,主函数中为公有。类一旦创建,先分配内存,然后执行内部的_init_方法。

 

一个按钮通常具有以下属性:

1、  Label

2、  Size

3、  Pos

4、  Font

5、  ……

以及以下方法:

1、  setlabel

2、  setdefault

3、  enable

4、  ……

 

对于wx,必须要创建对应的App和Frame对象。

如创建继承自App的对象,要将Frame定义在OnInit方法中。

框架中的组件:

1、  组件容器(containers):用于容纳其他组件,如wx.Panel。

2、  动态组件(DynamicWidgets):可以被用户编辑,如wx.Button,wx.TextCtrl,wx.ListBox等。

3、  静态组件(StaticWidgets):显示信息用,不能被用户编辑,如wx.StaticBitmap,wx.StaticText,wx.StaticLine等

4、  其他组件,如wx.ToolBar,wx.MenuBar,wx.StatusBar

 

在类中使用其他方法出现的变量,要全用self.XXX。

GUI常用组件有:

1、  静态文本

2、  列表框

3、  输入框

4、  按钮

5、  菜单

 

按钮(Buttom及其家族):

功能:接受用户的点击。可以指定大小和文字和处理事件的函数。

常用按钮:

Wx.Buttom:文本按钮

Wx.BitmapButtom:位图按钮

Wx.ToggleButtom:开关按钮(具有两个常态)

绑定处理按钮点击的事件。

 

菜单:

1、  菜单栏

2、  菜单

3、  菜单项命令

wxPython用于创建菜单的类:

1、  wx.MenuBar

2、  wx.Menu

3、  wx.MenuItem

 

静态文本框(StaticText)和文本框(TextCtrl):

文本框用于接收用户在框内输入的信息,或显示由程序提供的信息。

静态文本框(标签)类:wx.StaticText

文本框类:wx.TextCtrl,常用形式为单行,多行,富文本框。

 

列表(ListCtrl):

列表用于显示多个条目并且可供用户选择。

列表能够以下面四种不同模式建造:

1、  wx.LC_ICON(图标)

2、  wx.LC_SMALL_ICON(小图标)

3、  wx.LC_LIST(列表)

4、  wx.LC_REPORT(报告)

 

单选框(RadioBox)和复选框(CheckBox):

复选框用于从一组可选项中,同时选中多分选项。

对应的,单选框用于从一组互斥的选项中,选取其一。

 

在Frame中用到多于一个组件的时候需要用到布局管理。

绝对定位——每个窗口部件在被创建的时候显式的指定了大小和位置。

缺点是定位不灵活,调整大小困难,受设备、操作系统甚至字体影响。

Wxpython中提供的灵活布局解决方案是sizer。

每个sizer有自己的定位策略,开发者只需要选择合适策略的sizer将窗口组件放入,并且指定好需求即可。所谓指定好需求是指,指定新加入的窗口组件与原组件的位置关系,或需要占据多大的网格等。

wxPython常用的sizer:

1、  wx.BoxSizer:在一条线上布局子窗口部件,水平或垂直。

2、  wx.FlexGridSizer:行高和列宽由最大的组件决定。

3、  wx.GridSizer:所有组件大小一致,固定一个方向,在另外一个方向生长。

4、  wx.GridBagSizer

5、  wx.StaticBoxSizer

 

使用sizer的步骤:

1、  创建自动调用尺寸的容器,如panel。

2、  创建sizer

3、  创建子窗口(窗体部件)

4、  使用sizer的Add方法将每个子窗口添加给sizer

5、  调用容器的SetSizer(sizer)方法

 

其他可用GUI库:Tkinter和PyQt以及PyGTK。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: