python 基础教程系列12.GUI
来源:互联网 发布:数据网关介绍 编辑:程序博客网 时间:2024/06/07 18:03
一、平台
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-5import wxapp = 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-8import wxdef 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()
阅读全文
0 0
- python 基础教程系列12.GUI
- Python基础教程(十二):GUI编程、版本区别、IDE
- java基础教程-GUI
- java基础教程-GUI
- Python基础教程系列目录,最全的Python入门教程
- Python基础教程
- Python基础教程
- Python基础教程
- Python 基础教程
- python 基础教程
- python基础教程
- 《Python基础教程》
- Python基础教程
- Python 基础教程
- Python基础教程
- python基础教程
- python基础教程
- python 基础教程
- smtp邮件协议
- java.nio.Buffer源码解读
- python使用scrapy爬取qq音乐(二)
- Spark基础-Scala模式匹配
- RILD
- python 基础教程系列12.GUI
- 操作系统:虚拟页式存储管理(缺页中断、页面置换算法)
- 先埋下一些坑,以后再填
- 【位运算符与逻辑运算符知识点】【二进制枚举子集】【just for 状压】
- LeetCode之Merge Two Sorted Lists
- MySql的学习
- (C语言)换热器报价生成器设计报告
- Codeforces Round #426 (Div. 2)The Meaningless Game(思维+二分)
- 开篇手记