文件名称:
python3+wxpython编程教程
开发工具:
文件大小: 1mb
下载次数: 0
上传时间: 2019-03-03
详细说明:python3+wxpython图形界面编程教程,通过学习可以掌握wxpython编程基本知识。内有图文、源代码展示。wx. StaticText
wX. Button
wX.BitmapButton
wX. AnyButton
wx. Radio Button
WX.ToggleButton
wx CheckBox
wx. TextCtrl
ListBox
WX. Control
wx ComboBox
wx. Choice
Slide
wx Gauge
wx ScrollBar
wX ToolBar
wx TreeCtrl
wx. StaticBox
WX.StaticBitmap
图
02
控件类层次结构
第一个 wXPython程序
1、第一个程序
coding=utf-8
#代码文件: chapter19/ch19.3.2-1py
mport WX
#创建应用程序对象
app= wx Appo
#创建窗口对象
frm= WX Frame(None,tte="第一个GU程序!,size=(400,300,pos=(100,100)①
frm show0)#显示窗口②
app. MainLoop0#进入主事件循环③
2、窗口类MyF
rame
coding=utf-8
#代码文件: chapter19/ch19.3.2-2py
Import WX
#自定义窗口类 My Frame
class MyFrame(wx Frame ): 1
def_ init_(self)
super().init( parent=None,tle="第一个GU|程序!",size=(400,300,pos=(100,100)
t TODO
class app(wx. App)
def OnInit(sef;:②
#创建窗口对象
frame My Framed
frame. Showo
return True
def on Exit(sef;:③
print(应用程序退出)
return o
name - maIn
app Appo
app. MainLoop(0)#进入主事件循环
3、使用面板
coding=utf-8
#代码文件: chapter19/ch193.2-3.py
import WX
#自定义窗口类 My Frame
lass My Frame(wx Frame
def init(self)
super().init( parent=None,tite="第一个GU|程序!",sze=(400,300)
self centre(0#设置窗口居中①
panel wx Panel(parent=self)(2
statictext=wX. StaticText(parent=panel, label='Hello World! pos=(10, 10)
class app(wx. App)
def OnInit(self)
#创建窗口对象
frame MyFrameo
frame Showo
return true
app= Appo
app. MainLoop(0)#进入主事件循环
Edit
菜单栏
内容面板
图03 Frame的内容面板
WXPython界面构建层次结构
Frame
(顶级窗口)
Pane(内容面板)
菜单栏
StaticText(标签
(其他子控件
图04界面构建层次
事件处理
在事件处理的过程中涉及4个要素
事件。
事件类型。
事件源。
事件处理者。
绑定是通过事件处理类的 Bindo方法实现, Bindo方法语法如下:
Bind(self, event, handler, source= None, id=wX. ID_ANY, id2=WX. ID_ANY
对一事件处理
一对一事件处理
一对一事件处理
Hello, world
OK
(a)
图05一对一事件处理示例
对多事件处理
一对一事件处理
国一对一事件处理
Butn1单击
Butn2单击
L Button1
Button1
Button2
Button2
a
图06一对多事件处理示例
示例:鼠标事件处理
布局管理
使用绝对布局会有如下问题:
子窗口(或控件)位置和大小不会随着父窗口的变化而变化。
在不同平台上显示效果可能差别很大。
在不同分辨率下显示效果可能差别很大。
字体的变化也会对显示效果有影响。
动态添加或删除子窗口(或控件)界面布局需要重新设计。
wX Sizer
wx. BoxSizer
wx. GridSizer
wx. StaticBoxSizer
wX.WrapSizer
wx FlexGrid Sizer
wX.Std Dialog Button Sizer
wX.GridBagSizer
类层次结构
BoX布局器
创建wXx. BoXSizer对象时可以指定布局方向:
hboX= wX. BoxSizer( WX. HORIZONTAL)#设置为水平方向布局
hbox=wx. BoXSizer(#也是设置为水平方向布局, WX. HORIZONTAL是默认值可以省略
vbox= wx. BoXSizeri( NX VERTICAL)#设置为垂直方向布局
当需要添加子窗口(或控件)到父窗口时,需要调用wx. Box Sizer对象AdO方法,
AddO方法是从父类wx. Sizer继承而来的,AdO方法语法说明如下:
Add( window, proportion=0,fag=0, border=0, userData=None)#添加到父窗口
Add(szer, proportion=0,fag=0, border=0, userData=None)#添加到另外一个Szer中,用于嵌套
Add( width, height, proportion=0,fag=0, border=0, userData=None)#添加一个空白空间
表对齐标志
标志
说明
顶对齐
底对齐
左对齐
右对齐
居中对齐
垂直居中对齐
水平居中对齐
同
同
表边框标志
标志
说明
设置有顶部边框,边框的宽度需要通过方法的
参数设置
设置有底部边框
设置有左边框
设置有右边框
设置面全有边框
表调整尺寸标志
标志
说明
调整子窗口(或控件)完全填满有效空间
调整子窗口(或控件)填充有效空间,但保存高宽比
调整子窗口(或控件)为最小尺寸
设置此标志后,子窗口(或控件)如果被隐藏,所占空间保留
Box布局
Button1单击
Button 1
Button2
图08Box布局示例
StaticBox布局
Wx. Static Box Sizer构造方法如下:
口wx. Static Box Sizer(box, orient-= HORIZONTAL)。box参数是 wx. StaticBox(静态框)
对象, orient参数是布局方向。
口wx. Static Box sizer( orient, parent, label=") orient参数是布局方向, parent参数是
设置所在父窗口, label参数设置边框的静态文本。
StaticBox布局
Bun1单击
按钮框
Button1
Button2
图09 Static Box布局示例
Grd布局
wx, Gridsizer构造方法如下:
口wx. GridSizer(rows,cols,vgap,hgap)。创建指定行数和列数的wx. Gridsizer对象,
并指定水平和垂直间隙,参数hgap是水平间隙,参数vgap是垂直间隙。添加
的子窗口(或控件)个数超过rows×cols之积,则引发异常
口wx. Gridsizer(rows,cols,gap)。同 Gridsizer(rows,cols,vgap,hgap),gap参数指定
垂直间隙和水平间隙,gap参数是wx.Size类型,例如wx.size(2,3)是设置水平间
隙为2像素,垂直间隙为3像素。
口wx. gridsizert(col,vgap,hgap)。创建指定列数的wx. Gridsizer对象,并指定水平
和垂直间隙。由于没有限定行数,所以添加的子窗口(或控件)个数没有限制。
wX. GridSizer(cols,gap=wx.Size(0,0)。同 GridSizer(cols,vgap,hgap),gap参数是
垂直间隙和水平间隙是 wx. Size类型
Grid布局
8
图010
布局示例
FlexGrid布局
wx. Flex gridsizer有两个特殊方法如下:
口 AddGrowablerow(idx, proportion=0)。指定行是可扩展的,参数idx是行索引,
从零开始;参数 proportion是设置该行所占空间比例。
口 Add Growablecolc(idx, proportion=0)。指定列是可扩展的,参数idx是列索引,从
零开始;参数 proportion是设置该列所占空间比例。
FlexGrid布局
标题
作者名:
内容
图011
布局示例
WXPython控件
静态文本和按钮
wXPython中静态文本类是wx. StaticText,可以显示文本。 wXPython中的按钮主要有
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.