python图形开发GUI库wxpython使用方法详解

来源:脚本之家  责任编辑:小易  

wxpython和pyqt都可以,pyqt的设计工具相对好一点,但打包出来的东西要大一点点。其实也就大个几MB。 如果用pyqt的话推荐你去试试eric4这个IDE。 如果用wxpython可以去试试Boa Constructor这个IDE 界面不是太复杂的话两个都差不多,看个人喜好了

一、python gui(图形化)模块介绍:

  Tkinter :是python最简单的图形化模块,总共只有14种组建

easygui不是事件驱动的,不需要回调函数什么的,跟其他的GUI框架不太一样,因此可能更接近命令行程序的风格,也就比较简单些。如果题主从来没写过GUI,也许可以考虑用它。 wxpython就是比较正规的GUI框架了,跟其他的GUI框架基本一样。如果想直

  Pyqt     :是python最复杂也是使用最广泛的图形化

安装wxPython 下面是wxPython特别基础的使用方法,将以一个小程序为例来说明,它的功能是在一个文本框中输入文件名,点击open按钮,会在另一个文本框中显示其内容,可以进行修改,点击save可以保存修改。 wxPython的使用简介 创建应用程序对象:

  Wx       :是python当中居中的一个图形化,学习结构很清晰

wxpython: # 使用wx.Image得到对象 bmp = wx.Image('bitmaps/image.bmp', wx.BITMAP_TYPE_BMP).ConvertToBitmap() gif = wx.Image('bitmaps/image.gif', wx.BITMAP_TYPE_GIF).ConvertToBitmap() png = wx.Image('bitmaps/image.png', wx.BITMAP_

  Pywin   :是python windows 下的模块,摄像头控制(opencv),常用于外挂制作

二、wx模块的安装:

如果用python自带的GUI tkInter 这方面的书有 《Python与Tkinter编程》 如果用wxPython开发,书就比较多了。 《Wxpython in Action》 中文名 《Wxpython 实战》 《活学活用wxPython》

C:\Users\Administrator> pip install wxpython

三、图形化介绍

新车快讯为你解答!很多朋友认为踩下离合可以延长制动距离,如果你是在下坡时候这么做还可以理解,但是在平坦的道路上遇到紧急情况该不该踩离合呢?今天讯哥就给大家讲一讲踩离合。讯哥要首先告诉大家的是,当车辆遇到紧急情况时,不需要踩下离合,因为你急刹车的目的是为了躲避前方的危险,而不是为了车辆不熄火。很多开手动挡的朋友会有这样一种情况:想刹车的时候就会下意识的先去踩离合。其实这是驾校的一种不负责任的一种做法,让每一个学员都记住:不准熄火!讯哥想说的是,就算熄火又如何?对于自己的安全和车辆安全来说,避免事故要比汽车熄火要重要千百倍!就算你因此熄火了,还可以继续重新启动,但是你一旦发生事故了,就没有机会再重

 

四、wx主要组件介绍

我有点没明白,你所谓的已经在高速上,是正在去的路上,还说已经买完车在回家的路上。如果没买车还,那就找个老司机给你开回去,如果是第二种情况,就是已经买了,无证驾驶回去吧,只能说祈祷别遇到临检,不过我很好奇,没牌照你是怎么上的高速。这个就厉害了。至于说被抓到,拘留/扣车啥的都是少不了了,估计你还是需要找人帮你把车开回去,所以,个人建议,你可以把车停到服务区,然后等朋友来给你开回去吧,自己就别给自己找麻烦了。

1、frame(窗口)

我来说说我自己吧,当初在权衡下,为了孩子更好的成长我选择了全职妈妈,每天我也是很忙,除了孩子,我也是尽量把自己填满来丰富自己第一,保持健康的身体每天除了照顾孩子吃喝玩乐,中午午睡的时间我会先陪她一起睡半个小时左右,在她还没睡醒的时候,我就开始跳操,健身等,因为我发现每次运动完出一身汗,人会很舒服,轻盈,在保持身材的同时还能调节自己的情绪,所以这也是我一直坚持的习惯。第二,多看书,学习我是个闲不下来的人,自己做了妈妈,我学会了烘焙,隔三岔五就给孩子做点饼干啊,蛋糕啊,小点心之类的,孩子吃的开心,我也高兴。还有关于小儿推拿的书。带着孩子一起学做手工等等第三,培养自己的爱好前面说了我做烘焙为了让孩子

参数:

年轻人喜欢买自主,中年人喜欢买合资。这不是个铁律,不过确实是目前的一种现况。自主品牌的不断崛起,使得自主车市场产品丰盈。至于为什么年轻人愿意选择自主车型,可以归结为以下几点:自主品牌颜值高其实,自主品牌颜值一直是一个争议性的话题,毕竟每个人的审美观不一样。不过随着自主品牌的不断发展,在车型原创设计方面有了很大的进步,就像众泰都摘掉“皮尺”的帽子搞原创了,所以“萝卜白菜各有所爱”,自主品牌的颜值已然能满足一票年轻“FANS”。自主品牌配置高自主品牌车型的配置水平普遍较高,各种主被动安全配置、车联网与智能化配置俱全,在极大程度上满足了年轻人的需求。自主品牌价位低价位一直可以说是自主品牌的核心竞争力

parent = None #父元素,假如为None,代表顶级窗口

id = None #组件的标识,唯一,假如id为-1代表系统分配id

title = None #窗口组件的名称

pos = None #组件的位置,就是组件左上角点距离父组件或者桌面左和上的距离

size = None #组件的尺寸,宽高

style = None #组件的样式

name = None #组件的名称,也是用来标识组件的,但是用于传值

2、TextCtrl(文本框)

参数:

年轻人喜欢买自主,中年人喜欢买合资。这不是个铁律,不过确实是目前的一种现况。自主品牌的不断崛起,使得自主车市场产品丰盈。至于为什么年轻人愿意选择自主车型,可以归结为以下几点:自主品牌颜值高其实,自主品牌颜值一直是一个争议性的话题,毕竟每个人的审美观不一样。不过随着自主品牌的不断发展,在车型原创设计方面有了很大的进步,就像众泰都摘掉“皮尺”的帽子搞原创了,所以“萝卜白菜各有所爱”,自主品牌的颜值已然能满足一票年轻“FANS”。自主品牌配置高自主品牌车型的配置水平普遍较高,各种主被动安全配置、车联网与智能化配置俱全,在极大程度上满足了年轻人的需求。自主品牌价位低价位一直可以说是自主品牌的核心竞争力

parent = None #父元素,假如为None,代表顶级窗口

id = None #组件的标识,唯一,假如id为-1代表系统分配id

value = None   #文本框当中的内容

         GetValue #获取文本框的值

         SetValue #设置文本框的值

pos = None #组件的位置,就是组件左上角点距离父组件或者桌面左和上的距离

size = None #组件的尺寸,宽高

style = None #组件的样式

validator = None #验证

name = None #组件的名称,也是用来标识组件的,但是用于传值

3、Button(按钮)

参数:

年轻人喜欢买自主,中年人喜欢买合资。这不是个铁律,不过确实是目前的一种现况。自主品牌的不断崛起,使得自主车市场产品丰盈。至于为什么年轻人愿意选择自主车型,可以归结为以下几点:自主品牌颜值高其实,自主品牌颜值一直是一个争议性的话题,毕竟每个人的审美观不一样。不过随着自主品牌的不断发展,在车型原创设计方面有了很大的进步,就像众泰都摘掉“皮尺”的帽子搞原创了,所以“萝卜白菜各有所爱”,自主品牌的颜值已然能满足一票年轻“FANS”。自主品牌配置高自主品牌车型的配置水平普遍较高,各种主被动安全配置、车联网与智能化配置俱全,在极大程度上满足了年轻人的需求。自主品牌价位低价位一直可以说是自主品牌的核心竞争力

parent = None #父元素,假如为None,代表顶级窗口

id = None #组件的标识,唯一,假如id为-1代表系统分配id

lable = None #按钮的标签

pos = None #组件的位置,就是组件左上角点距离父组件或者桌面左和上的距离

size = None #组件的尺寸,宽高

style = None #组件的样式

validator = None #验证

name = None #组件的名称,也是用来标识组件的,但是用于传值

其它组件的参数类似

4、创建窗口基础代码

基本创建窗口代码说明:

import wx #引入wx模块 app = wx.App() #实例化一个主循环<br> frame = wx.Frame(None) #实例化一个窗口<br> frame.Show()#调用窗口展示功能<br> app.MainLoop()#启动主循环

效果如下图:

五、Gui编写简单实例

实现如下一个GUI界面,在上面文本框中输入文本文件地址,点击“打开”按钮后将文本文件内容显示在下面的文本框中。

1、图形化编写

import wx app = wx.App() frame = wx.Frame(None,title = "Gui Test Editor",pos = (1000,200),size = (500,400)) path_text = wx.TextCtrl(frame,pos = (5,5),size = (350,24)) open_button = wx.Button(frame,label = "打开",pos = (370,5),size = (50,24)) save_button = wx.Button(frame,label = "保存",pos = (430,5),size = (50,24)) content_text= wx.TextCtrl(frame,pos = (5,39),size = (475,300),style = wx.TE_MULTILINE) # wx.TE_MULTILINE可以实现换行功能,若不加此功能文本文档显示为一行显示 frame.Show() app.MainLoop()

2、事件绑定

1、定义事件函数

事件函数有且只有一个参数,叫event

def openfile(event): path = path_text.GetValue() with open(path,"r",encoding="utf-8") as f: #encoding 设置文件打开时指定为utf8编码,避免写文件时出现编码错误 content_text.SetValue(f.read())

2、绑定出发事件的条件和组件

open_button.Bind(wx.EVT_BUTTON,openfile)

3、完整代码

#coding:utf-8 import wx def openfile(event): # 定义打开文件事件 path = path_text.GetValue() with open(path,"r",encoding="utf-8") as f: # encoding参数是为了在打开文件时将编码转为utf8 content_text.SetValue(f.read()) app = wx.App() frame = wx.Frame(None,title = "Gui Test Editor",pos = (1000,200),size = (500,400)) path_text = wx.TextCtrl(frame,pos = (5,5),size = (350,24)) open_button = wx.Button(frame,label = "打开",pos = (370,5),size = (50,24)) open_button.Bind(wx.EVT_BUTTON,openfile) # 绑定打开文件事件到open_button按钮上 save_button = wx.Button(frame,label = "保存",pos = (430,5),size = (50,24)) content_text= wx.TextCtrl(frame,pos = (5,39),size = (475,300),style = wx.TE_MULTILINE) # wx.TE_MULTILINE可以实现以滚动条方式多行显示文本,若不加此功能文本文档显示为一行 frame.Show() app.MainLoop()

六、尺寸器

按照上面的GUI代码有一个缺陷,由于我们各个组件都固定了大小,因此在框体拉伸时,对应的组件不会对应进行拉伸,比较影响用户体验。

为了解决上述这个问题,我们可以使用尺寸器进行布局,类似于HTML的CSS样式。

1、BoxSizer(尺寸器) 尺寸器作用于画布(panel) 默认水平布局 垂直布局可以调整 按照相对比例

2、步骤 实例化尺寸器(可以是多个) 添加组件到不同尺寸器中 设置相对比例、填充的样式和方向、边框等参数 设置主尺寸器

3、将上面代码通过尺寸器改写

#coding:utf-8 import wx def openfile(event): # 定义打开文件事件 path = path_text.GetValue() with open(path,"r",encoding="utf-8") as f: # encoding参数是为了在打开文件时将编码转为utf8 content_text.SetValue(f.read()) app = wx.App() frame = wx.Frame(None,title = "Gui Test Editor",pos = (1000,200),size = (500,400)) panel = wx.Panel(frame) path_text = wx.TextCtrl(panel) open_button = wx.Button(panel,label = "打开") open_button.Bind(wx.EVT_BUTTON,openfile) # 绑定打开文件事件到open_button按钮上 save_button = wx.Button(panel,label = "保存") content_text= wx.TextCtrl(panel,style = wx.TE_MULTILINE) # wx.TE_MULTILINE可以实现以滚动条方式多行显示文本,若不加此功能文本文档显示为一行 box = wx.BoxSizer() # 不带参数表示默认实例化一个水平尺寸器 box.Add(path_text,proportion = 5,flag = wx.EXPAND|wx.ALL,border = 3) # 添加组件 #proportion:相对比例 #flag:填充的样式和方向,wx.EXPAND为完整填充,wx.ALL为填充的方向 #border:边框 box.Add(open_button,proportion = 2,flag = wx.EXPAND|wx.ALL,border = 3) # 添加组件 box.Add(save_button,proportion = 2,flag = wx.EXPAND|wx.ALL,border = 3) # 添加组件 v_box = wx.BoxSizer(wx.VERTICAL) # wx.VERTICAL参数表示实例化一个垂直尺寸器 v_box.Add(box,proportion = 1,flag = wx.EXPAND|wx.ALL,border = 3) # 添加组件 v_box.Add(content_text,proportion = 5,flag = wx.EXPAND|wx.ALL,border = 3) # 添加组件 panel.SetSizer(v_box) # 设置主尺寸器 frame.Show() app.MainLoop()

通过尺寸器进行布局,无论宽体如何拉伸,内部的组件都会按比例进行变化。

更多关于python图形开发GUI库wxpython使用方法请查看下面的相关链接

扩展阅读,根据您访问的内容系统为您准备了以下内容,希望对您有帮助。

wxPython和PyQt谁才是最赞的Python GUI库

PYQT可以做MFC能做的任何事情。且开发简单,推荐PYQT,现在是5.11.2了

python开发的gui漂亮吗

可以

0、前言

有不少初学者会问,Python 写的程序看起来好丑啊,只能在那个黑黑的框里运行吗?隔壁家的 JS 好像挺好看的,还能有酷炫效果呢……

其实呢,术业有专攻,Python 擅长的领域在后台服务器、数据处理、科学计算等方面,以及作为一种工具,搞定各种可以自动化的事情。做界面并不是它的优势项目。但即便如此,本可以靠实力的 Python,偏偏也能靠脸走出一片天。

从诞生伊始,就有许多优秀的 GUI 工具集整合到 Python 当中,这些优秀的 GUI 工具集,使得 Python 也可以在图形界面编程领域当中大展身手。而由于 Python 的流行,也从而产生了许多由 Python 结合那些优秀的 GUI 工具集编写的应用程序。

今天我们简单分享一些 Python 的图形化界面库及其相关资源,供广大学习者参考。

本文涉及的,也是现今主流的 Python 图形化界面主要有以下几种:

Tkinter

PyQt

wxPython

PyGTK

PySide

Kivy

1、Tkinter

Tkinter 内置于 Python。没错,Tkinter 姓赵。是与 Tk/Tcl 关系最密切的图形库,历史悠久、用户广泛。跨平台运行,支持 windows/macOS/Linux。由于内置,就不用考虑 Python 版本问题了,也算是一大优势。

下面是一些 demo:

Python发邮件实例,并用Tkinter实现UI - 推酷

用 Tkinter 编写交互日记系统

Tkinter 学习资源:

Python GUI编程(Tkinter) - 中文教程易佰

Introduction to Tkinter - 英文教程zetcode

官方文档 py2

官方文档 py3

基于Tkinter的姻缘测试器

2、PyQt

PyQt 是 Qt 的 Python 版本,Qt 库是最强大的 GUI 库之一,PyQt 有超过620个类以及6000种函数。我想数据已经能表现PyQt的强大了吧!该库适用于 Python2 和 Python3,能在所有桌面平台运行。

demo:

某大神的仿虾米音乐界面

某大神的仿网易云播放器

学习资源:

官方文档

pyqt4 中文文档

pyqt4 英文教程

pyqt5 英文教程

有哪些颜值高的 PyQt/Qt 应用?- 知乎

基于PyQt或PySide开发图形化界面

3、wxPython

wxPython 使用 C++ 编写,是目前比较流行的替代 Tkinter 的图形界面,比 Tkinter 重但又比 PyQt 轻。官网上赫然挂着醒目的一句话:

Why the hell hasn't wxPython become the standard GUI for Python yet?

wxPython 在主流的三大桌面平台都有不错的表现,但目前仅支持 Python2,Python3 需安装 wxPython_phoenix。

demo:

一个简单的记事本软件

python+wxpython 写的音乐播放器

学习资源:

英文教程

官方教程

wxpython in action

github: ubbn/wxPython

github: wxWidgets/wxPython

4、PyGTK

PyGTK 基于 GTK+ 开发,它提供了一套全面的图形元素创建桌面程序。易用、适合快速原型,许多 Gnome 下的著名应用程序的 GUI 都是使用 PyGTK 实现的,比如 BitTorrent、GIMP

和 Gedit。跨桌面平台,但只能在 Python2 上使用,另外该库最后更新日期是 2012 年。

demo:

PyGTK 做的 Linux Server 管理毕业设计

学习资源:

英文教程

官方文档

github: majorsilence/pygtknotebook

5、PySide

基于 Qt 框架,类似于 PyQt。在 2009 年由 NOKIA 发布,现在由 Riverbank Computing 维护。跨桌面平台,甚至支持 Android 和 Symbian 。PySide 有 15 个模块,这些模块提供了强大的工具来处理 GUI,多媒体,XML 文档,网络或数据库。

demo:

python版弹幕姬

学习资源:

英文教程

Intro to PySide/PyQt: Basic Widgets and Hello, World! - Python Central

官方教程

PySide图形界面开发(一) - bamb00 - 博客园

PySide--Python图形化界面入门教程(一) - ASCII0x03 - 博客园

github: pyside/Examples

github: shuge/Qt-Python-Binding-Examples

6、Kivy

Kivy 于 2011 年发布,现在依然在不断更新。它最大的优点是不但可以在桌面平台上运行,还可以在移动设备上运行,包括 Android、iOS,甚至是树莓派。而且,Kivy 可以看作许多模块的超集:许多知名的模块如 PyGame、SDL、GStreamer 都是 Kivy 的组成部分。Kivy 的 API更加高级、统一,方便使用。

游戏 Deflectouch

关于Python的问题,关于wxpython,GUI界面

‘或’的意思。

二进制中

其运算法则为

1|1=1

1|0=1

0|1=1

0|0=0

若把1看成true,0看成false。则或与逻辑中的或一致。

举例:

7|11=?

7的二进制表达 00000111

11的二进制表达 00001011

按位或过程: 00000111 ...........7

| 00001011 .........11

--------------------

00001111 ........15

所以 7|11=15

你可以print(wx.TE_MULTILINE),是一个数字

python界面编程问题

完全可以!而且还可以跨平台

发行版自带的库有Tkinter,著名的第三方库有wxPython、PyGTK、PyQT等。

其中QT是一个跨平台的强大的UI图形库,著名的google earth桌面版、Opear就是用QT写的界面。

QT的Python实现叫做PyQT,用Python就可以调用QT的接口。

去我说的这些相关官方网站、论坛等看看吧

用你的Python2.6直接运行以下代码看看:

import Tkinter

top = Tkinter.Tk()

btn = Tkinter.Button(top, text='mAmimoluo!')

btn.pack()

Tkinter.mainloop()

不明白的看看官方文档,或者dir、print xx.__doc__

Python Gui 学什么好??Tkinter ,WxPython 太不直观了

PySide 跟PyQt基本一样。只是授权方式不一样,Qt商业需要付费。

学PySide吧,PyQt的代码一般修改下头文件就可以正常运行。

而且有 QtDesigner 也就是可以设计界面的那种.....

具体的教程,自己百度吧。Qt很不错...

  • 本文相关:
  • wxpython:python首选的gui库实例分享
  • python gui图形化编程wxpython的使用
  • 基于wxpython的gui实现输入对话框(2)
  • 基于wxpython的gui实现输入对话框(1)
  • windows中使用wxpython和py2exe开发python的gui程序的实例教程
  • 在ubuntu系统下安装使用python的gui工具wxpython
  • 基于wxpython开发的简单gui计算器实例
  • 基于wxpython实现的windows gui程序实例
  • django 使用easy_thumbnails压缩上传的图片方法
  • 在python的django框架中显示对象子集的方法
  • python设计模式编程中adapter适配器模式的使用实例
  • python中的面向对象编程详解(下)
  • 浅谈python中的zip()与*zip()函数详解
  • pandas dataframe创建方法的方式
  • 详解python里使用正则表达式的全匹配功能
  • python解析模块(configparser)使用方法
  • python3 shelve模块的详解
  • python 3.x 连接数据库示例(pymysql 方式)
  • wxPython和PyQt谁才是最赞的Python GUI库
  • python开发的gui漂亮吗
  • 关于Python的问题,关于wxpython,GUI界面
  • python界面编程问题
  • Python Gui 学什么好??Tkinter ,WxPython 太不...
  • 关于Python的GUI开发库的选择
  • Python有哪些GUI模块?wxpython和easygui哪个好?...
  • python 编写gui界面有哪些
  • 如何在python界面显示图片
  • 有专门关于Python图形化界面编程的书吗
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved