python的wxpython包
1,wxpython包简介
图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。
wxpython这个包就可以被用来开发用户图形界面。
易百教程
2,wxFormBuilder图形化GUI开发的IDE
基本思想就是利用可视化操作界面生成前端样式,比如什么地方加文本框,什么地方加按钮,然后wxformbuilder会生成一个python的代码,里面主要是一些class,就像css一样,把它保存起来,然后在自己的程序中import一下,直接调用接口就行了。
道理是这么个道理,但是具体的操作嘛,还是要学,尤其是学一下wx包的函数和wxformbuilder的接口。
跑是可以跑起来,就是不大明白原理:
3,wxpython包基础语法
import wx
app=wx.App() #每一个wxPython应用程序都是wx.App这个类的一个实例
frame=wx.Frame(None,wx.ID_ANY,"hello World") #wx.Frame类是一个顶层窗口。它的用法是wx.Frame(Parent, Id, Title)
frame.Show(True) #让一个窗口可见,不要用false,不然程序是运行的,但是没有窗口显示
app.MainLoop() #应用程序的MainLoop函数,它用来处理各种事件。
4,设计一个简单的文本编辑器
先给文本编辑器加上菜单栏和状态栏:
class MyFrame(wx.Frame): #继承了Frame类,但是重写了它的方法
def __init__(self,parent,title):
wx.Frame.__init__(self,parent,title=title,size=(200,100))
self.control=wx.TextCtrl(self,style=wx.TE_MULTILINE) #这里创建了一个新的wx.TextCtrl实例
self.CreateStatusBar() #添加一个状态栏到窗口的底部,用于显示菜单栏的提示信息 filemenu=wx.Menu() #创建一个菜单栏的下拉列表
filemenu.Append(wx.ID_ABOUT,"about","information about this program")
filemenu.AppendSeparator()
filemenu.Append(wx.ID_EXIT,"Exit","terminate the program") menuBar=wx.MenuBar() #添加一个菜单条
menuBar.Append(filemenu,"file") #把菜单栏添加到菜单条上,并且命名为file
self.SetMenuBar(menuBar) #把菜单条添加到frame内容上
self.Show(True) app=wx.App(False)
frme=MyFrame(None,"Small editor")
app.MainLoop()
再尝试加入事件:
事件就是指发生在你的程序当中的某些事情(一个按钮被按下,文本输入,鼠标移动等等),
//这个函数和上一个有所不同,注意区分,记得提前import
class MainWindow(wx.Frame): #继承了Frame类,但是重写了它的方法
def __init__(self,parent,title):
wx.Frame.__init__(self,parent,title=title,size=(200,100))
self.control=wx.TextCtrl(self,style=wx.TE_MULTILINE) #这里创建了一个新的wx.TextCtrl实例
self.CreateStatusBar() #添加一个状态栏到窗口的底部,用于显示菜单栏的提示信息 filemenu=wx.Menu() #创建一个菜单栏 menuAbout=filemenu.Append(wx.ID_ABOUT,"&about","information about this program")
menuExit=filemenu.Append(wx.ID_EXIT,"&Exit","terminate the program") menuBar=wx.MenuBar() #添加一个菜单条
menuBar.Append(filemenu,"&file") #把菜单栏添加到菜单条上,并且命名为file
self.SetMenuBar(menuBar) #把菜单条添加到frame内容上 #创建事件
self.Bind(wx.EVT_MENU,self.OnAbout,menuAbout) #把下拉菜单中的menuAbout菜单栏和事件:OnAbout联系起来,第一个参数是事件的id
self.Bind(wx.EVT_MENU,self.OnExit,menuExit) self.Show(True) #定义事件
def OnAbout(self,e): #事件和菜单栏联系起来以后,事件的动作由函数定义
dlg=wx.MessageDialog(self,"a small text editor","about Sample Editer",wx.OK) #弹出提示窗口,窗口标题是“about Sample Editer",提示信息是”a small test editor“
dlg.ShowModal() #
dlg.Destroy() def OnExit(self,e):
self.Close(True) app=wx.App(False)
frame=MainWindow(None,"sample editor")
app.MainLoop()
5,加入对话框
现在我们的窗口已经有菜单栏,文本框,状态栏等内容了,接下来我们尝试加入对话框。
其实说到底,这个包是调用各种窗口,添加各种事件建立各种联系,它是一个操作应用型的包,有点像html和css,各种元素方法如果想应用自如,还是要靠练习。
python的wxpython包的更多相关文章
- python下wxpython程序国际化的实践(中文英文切换)
一.什么是python的国际化(I18N) 有关I18N,百度上解释一大堆,个人比较喜欢这个说法. i18n是 Internationalization 这个英文的简写,因为International ...
- Python黑帽编程1.3 Python运行时与包管理工具
Python黑帽编程1.3 Python运行时与包管理工具 0.1 本系列教程说明 本系列教程,采用的大纲母本为<Understanding Network Hacks Attack and ...
- python中引入包的时候报错AttributeError: module 'sys' has no attribute 'setdefaultencoding'解决方法?
python中引入包的时候报错:import unittestimport smtplibimport timeimport osimport sysimp.reload(sys)sys.setdef ...
- Python之扩展包安装
读者朋友,在比较新的版本(Python 2 >=2.7.9 or Python 3 >=3.4)中,pip或者easy_install 扩展包命令已经默认安装(可查看 你的安装目录\p ...
- python的egg包的安装和制作]
Defining Python Source Code Encodings Python egg 的安装 egg文件制作与安装 2011-06-10 14:22:50| 分类: python | ...
- [resource]23个python的机器学习包
23个python的机器学习包,从常见的scikit-learn, pylearn2,经典的matlab替代orange, 到最新最酷的Theano(深度学习)和torch 7 (well,其实lua ...
- Python学习 之 包和模块
1.rpm -ql python #查看python在计算机中安装了哪些文件 2.模块是一个可以导入的Python脚本文件 包是一堆按目录组织的模块和子包,目录下的__init__.py文件存放了包的 ...
- 使用pip install 或者easy_install安装Python的各种包出现cc failed with exit status 1
*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...
- 繁简转换OpenCC,autogb 和 autob5,iconv,python的jianfan包
OpenCC OpenCC 是跨平台.多语言的开放中文转换库,除了基本的简繁转换功能外,用户还可以选择对不同用词习惯和异体字的处理方式. OpenCC 还提供方便的网页转换界面. OpenOffice ...
随机推荐
- IDEA+循环语句 or 输出语句 快捷操作
IDEA+循环语句 or 输出语句 快捷操作:https://blog.csdn.net/shijiebei2009/article/details/44726433 for循环:仅输入fori然后回 ...
- UIImagePickerDelegate - 官方文档说明
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDic ...
- React 合并行 RowSpan
十年河东,十年河西,莫欺少年穷 学无止境,精益求精 今儿分享一篇关于React Table 组件合并单元行的方法! 实例效果如下: 原则就是遇到相同的供方名称,就要做行合并! 思路如下:后端计算合并的 ...
- HIT创业感言:只有长寿的企业才有持续价值
导语:本文将讨论医疗信息化行业中的创业和企业经营问题.笔者创立的南京都昌科技有限公司专做电子病历编辑器控件,已经有3年多,期间辛苦多年,但因为医疗信息化行业的整体发展良好,也能有所成就了,不过革命尚未 ...
- 循环语句之for循环
什么是循环语句? 循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否 ...
- js模块化世界
前言 我们经常见到 一些这样的写法,require('xxx').import xx from '../components/data'.export const data....也听见一些这样的说法 ...
- 写论文时,使用word的一些技巧
目录 怎么设置文章里所有英文的字体.所有中文的字体样式 删除文章中的所有或者部分超链接 设置忽略英文的拼写检查 怎么设置文章里所有英文字体.所有中文字体样式 用鼠标选中需要更改的文章内容,如果是全文, ...
- Python正则表达式里的单行re.S和多行re.M模式
Python正则表达式里的单行re.S和多行re.M模式 Python 的re模块内置函数几乎都有一个flags参数,以位运算的方式将多个标志位相加.其中有两个模式:单行(re.DOTALL, 或者r ...
- MySQL系列:数据库基本操作(1)
1. 登录数据库 mysql -h localhost -u root -p 2. 数据库基本操作 2.1 查看数据库 mysql> SHOW DATABASES; +------------- ...
- [模板] 动态树/LCT
简介 LCT是一种数据结构, 可以维护树的动态加边, 删边, 维护链上信息(满足结合律), 单次操作时间复杂度 \(O(\log n)\).(不会证) 思想类似树链剖分, 因为splay可以换根, 用 ...