python 基础教程系列12.GUI

一、平台
Tkinter, wxpython, pythonwin, Java Swing, pyGTK, pyQt

二、创建窗口和组件

import wx    
app = wx.App()         #创建应用程序对象
win = wx.Frame(None)   #创建窗体
win.Show()             #显示窗体
app.MainLoop()         #运行程序

三、增加按钮和按钮处理事件
1.wx.Button()添加按钮函数
2.利用部件的Bind()方法可以将事件处理函数链接到给定的事件上。~.Bind(按钮事件, 函数名)
loadButton.Bind(wx.EVT_BUTTON, load) #wx.EVT_BUTTON为按钮点击事件

四、窗体的标签/标题与布局
1.title/label pos,size
2.尺寸器:sizer wx.BoxSizer 尺寸器会管理组件的尺寸。只要将部件添加到尺寸器上,再加上一些布局参数,然后让尺寸去管理父组件的尺寸。需要增加背景组件(wx.Panel),创建一些嵌套的wx.BoxSizer,然后使用面板的SetSizer方法设定它的尺寸器。

#coding:utf-8
#code:12-5

import wx
app = wx.App()          #创建应用程序对象
win = wx.Frame(None, title = 'Simple Editor', size = (410, 335))  #创建窗体
bkg = wx.Panel(win)  #增加背景组件

loadButton = wx.Button(bkg, label = 'Open')
saveButton = wx.Button(bkg, label = 'Save')

filename = wx.TextCtrl(bkg)
contents = wx.TextCtrl(bkg, style = wx.TE_MULTILINE or wx.HSCROLL) #设置垂直和水平滚动条   MULTILINE多行

hbox = wx.BoxSizer()  #添加尺寸器进行布局,默认参数为水平
hbox.Add(filename, proportion = 1, flag = wx.EXPAND)  #wx.EXPAND扩大标记
hbox.Add(loadButton, proportion = 0, flag = wx.LEFT, border = 5)
hbox.Add(saveButton, proportion = 0, flag = wx.LEFT, border = 5)

vbox = wx.BoxSizer(wx.VERTICAL)
vbox.Add(hbox, proportion = 0, flag = wx.EXPAND | wx.ALL, border = 5)
vbox.Add(contents, proportion = 1, flag = wx.EXPAND | wx.LEFT | wx.BOTTOM | wx.RIGHT, border = 5)

bkg.SetSizer(vbox)
win.Show()

app.MainLoop()

Add方法有几个参数,proportion参数根据在窗口改变大小时说分配的空间设置比例,可以将proportion设定为任何数;flag参数类似于构造函数中的style参数,wx.EXPAND 标记确保组件会扩展到所分配的空间中, wx.LEFT | wx.BOTTOM | wx.RIGHT|wx.Top|wx.ALL标记决定了边框参数应用于哪个边,边框参数 border 用于设置边缘宽度(间隔)

wx.TextCtrl()创建文本框。

五、code:12-6

#coding: utf-8

import wx

def load(event):
    file = open(filename.GetValue())  #获取文件名
    contents.SetValue(file.read())    #contents.SetValue将文本引入文本区
    file.close()

def save(event):
    file = open(filename.GetValue(), 'w')
    file.write(contents.GetValue())    #GetValue用于从文本区获得信息
    file.close()

app = wx.App()
win = wx.Frame(None, title = 'Sample Editor', size = (410, 335))
bkg = wx.Panel(win)

loadButton = wx.Button(bkg, label = 'Open')
loadButton.Bind(wx.EVT_BUTTON, load)          #点击按钮,调用函数wx.EVT_BUTTON的符号常量表示一个按钮事件

saveButton = wx.Button(bkg, label = 'Save')
saveButton.Bind(wx.EVT_BUTTON, save)        

filename = wx.TextCtrl(bkg)
contents = wx.TextCtrl(bkg, style = wx.TE_MULTILINE or wx.HSCROLL)

hbox = wx.BoxSizer()
hbox.Add(filename, proportion = 1, flag = wx.EXPAND)
hbox.Add(loadButton, proportion = 0, flag = wx.LEFT, border = 5)
hbox.Add(saveButton, proportion = 0, flag = wx.LEFT, border = 5)

vbox = wx.BoxSizer(wx.VERTICAL)
vbox.Add(hbox, proportion = 0, flag = wx.EXPAND or wx.ALL, border = 5)
vbox.Add(contents, proportion = 1, flag = wx.EXPAND or wx.LEFT or wx.RIGHT or wx.BOTTOM, border = 5)

bkg.SetSizer(vbox)
win.Show()

app.MainLoop()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值