这里会介绍如何创建python程序的图像用户界面(GUI),也就是那些带有按钮和文本框的窗口等。目前支持python的所谓“GUI工具包”的有很多,本文简要介绍最成熟的跨平台pythonGUI工具包---wxPython。

一. 下载和安装wxPython

1.1 下载

访问下载页面:http://wxpython.org/download.php即可。

要注意以下几点:

1. 如果是windows系统,应该下载预建的二进制版本,可以选择支持Unicode或不支持Unicode,除非一定要用到Unicode,否则2个版本的区别不大;

2. 确保所选择的二进制版本要对应Python版本,比如python2.3对应的wxpython不能用于python2.4;

3. 如果没有任何版本适合硬件或操作系统,可以下载源代码发布版;

4. 在下载了wxpyhton之后,强烈建议下载演示版本(demo,它需要独立安装),它包含文档,示例程序和非常详细的演示分布。

1.2 安装

安装过程很简单,都是自动完成的,一直点“continue”就好了。

安装完毕之后,建议重新打开IDLE窗口,否则验证安装是否成功时会一直提示如下错误:

>>> importwx

Traceback (most recent call last):

File"", line 1, in ImportError: No module named wx

ps:LZ我就是在安装完之后,忘记重启IDLE窗口,导致import wx时一直提示这个错误,以为安装失败了。

导入wx模块成功的话,不会有其他提示。如下是我的wxPython安装目录,请拖到最后查看,最后一个目录为:'C:\\Python27\\lib\\site-packages\\wx-2.8-msw-unicode':

>>> importsys>>> printsys.path

['D:/python', 'C:\\Python27\\Lib\\idlelib', 'C:\\Python27\\Lib\\site-packages\\wx-2.8-msw-unicode\\wxPython', 'C:\\Python27\\python27.zip', 'C:\\Python27\\DLLs', 'C:\\Python27\\lib', 'C:\\Python27\\lib\\plat-win', 'C:\\Python27\\lib\\lib-tk', 'C:\\Python27', 'C:\\Python27\\lib\\site-packages', 'C:\\Python27\\lib\\site-packages\\wx-2.8-msw-unicode']>>> importwx>>>

正如前面一章《模块和包》中讲到的,sys.path中的内容就是告诉解释器去哪里找模块。现在wx在sys.path路径下,证明wx已经被python识别为一个模块,可以正常使用了。

二.使用

在学习的过程中,我发现一个很好的能够学习wxPython的网站,跟大家分享一下:http://wiki.woodpecker.org.cn/moin/WxPythonInAction

这里介绍里面讲到的一个最基本的wxPython程序:

importwx #导入wxPython包;(必须的步骤)classFrame(wx.Frame): # 定义一个wx.Frame的子类,以便我们更容易控制框架的内容和外观;def __init__(self,image,parent = None,id = -1,

pos=wx.DefaultPosition,

title= 'Hello,wxPython!'): #给框架的构造器增加一个图像参数,后面的应用程序会提供;

#下面是显示图像的步骤:

temp=image.ConvertToBitmap()

size=temp.GetWidth(),temp.GetHeight()

wx.Frame.__init__(self, parent, id, title, pos, size)

self.bmp= wx.StaticBitmap(parent = self,bitmap =temp)classApp(wx.App): #定义一个带有OnInit()方法的wx.App的子类,这是wxpython应用程序最基本的要求;(必须的步骤)defOnInit(self): (必须的步骤)

#下面是对图像的处理:

image= wx.Image('D:\\python\\wxpython.jpg',wx.BITMAP_TYPE_JPEG)

self.frame=Frame(image)

self.frame.Show()

self.SetTopWindow(self.frame)returnTrue

myapp=App() #创建一个应用程序类的实例;(必须的步骤)

myapp.MainLoop() #进入这个应用程序的主事件循环;(必须的步骤)

ps:LZ我也才入门wxpython,暂时也就只能分享到这里了。

python用户界面导入图片_python学习笔记之11:图像用户界面相关推荐

  1. python批量导入图片_Python批量导入图片生成PowerPoint 2007+文件

    原标题:Python批量导入图片生成PowerPoint 2007+文件 说明:本文是"Python批量爬取微信公众号文章中的图片"的后续文章,用来把从公众号批量抓取的图片还原为P ...

  2. python怎么导入图片_python怎么导入图片资源

    一.导入图片资源 方法1:直接从源图片中导(图片位于images文件夹内)self.label1=QLabel(self) self.label1.setPixmap(QPixmap(r"i ...

  3. python的基本数据结构_Python学习笔记——基本数据结构

    列表list List是python的一个内置动态数组对象,它的基本使用方式如下: shoplist = ['apple', 'mango', 'carrot', 'banana'] print 'I ...

  4. python __name__怎么使用_python学习笔记26(python中__name__的使用)

    在python中,每个py文件都是一个模块,也都是一个可执行文件,即包含main方法.因此,对每个py文件,可以单独运行,也可以import它给其他客户使用,这两种情况不一样. 1. 如果模块是被导入 ...

  5. python 异步加载_Python学习笔记4——爬取异步加载数据

    一.什么是异步加载? 在之前的学习笔记中,爬取的网页是需要手动翻页的网址,但是一些网站是通过自动加载翻页的,如knewone网页.浏览knewone的官网就能发现,当下拉到网页最下端时,网站会自动加载 ...

  6. python查看方法作用_python学习笔记1,新手小白也能看得懂

    这是酸菜在风变编程上学习python时积累的学习笔记,希望能帮到同样也在学习中的小伙伴.持续更新~ 第0关 Print()函数 (1)不带引号:让计算机读懂括号里的内容,打印最终的结果 例:print ...

  7. python 坐标轴 单位刻度_Python学习笔记(matplotlib篇)--坐标轴刻度

    python学习笔记--坐标轴刻度 所用的库及环境: ide:pycharm python环境:python3.7 matplotlib:   matplotlib 1.11 numpy:  nump ...

  8. python的基本数据结构_python学习笔记-基本数据结构

    Python 学习笔记-1 写在最前面,因为组内小伙伴要走,生信团队由原来的7个人,慢慢的变的只有我一个人了,需要紧急突击下python,因为有python的流程要交接维护 python 基本情况 代 ...

  9. python常用开放工具_python学习笔记16-各种模块和开放工具收集整理

    一.调试,性能,日志 Debugger: pdb Logger: logging Profilers: profile, hotshot, cProfile 调试模块 pdb 允许你设置(条件)断点, ...

最新文章

  1. 一个人的渺小与微不足道。
  2. s3c2440arm裸机编程之ADC触摸屏
  3. eye caring sticker
  4. [转][.NET 基于角色安全性验证] 之三:ASP.NET Forms 身份验证
  5. C++调用Matlab 注意事项
  6. Java ArrayList get()方法与示例
  7. 十七 Ajax校验用户名功能
  8. java中String的七种用法
  9. 20170910算法工程师在线笔试之求第n个丑数
  10. Android Studio Template(模板)开发,最后有参考
  11. mac vulkan_基于 mac 的 ncnn vulkan iOS集成参考
  12. 微博表情包大全,截止2022年5月
  13. mov和mp4格式哪个好_录音软件哪个好用?8款好用的录音软件
  14. 情感分析用于预测金融市场靠谱吗?
  15. 阿里巴巴字体库使用方法
  16. oracle12c不使用cdb模式,Oracle 12c实现手工建库而非CDB及CDB创建的方法
  17. Cisco Aironet系列AP的瘦胖转换
  18. PS笔刷:73款动漫风格的云朵小草花朵
  19. websocket简单聊天室
  20. 局域网与城域网(1)(网工)

热门文章

  1. 声明 定义 java_Java:定义术语初始化、声明和分配
  2. 一文读懂阿里云数据库Autoscaling是如何工作的
  3. 如何成为 Spring Cloud Alibaba committer ?
  4. 连续 3 年最受欢迎:Rust,香!
  5. Android单元测试读写文件,Android Studio单元测试:读取数据(输入)文件
  6. Raspberry Pi 3 计算模块,CPU性能提高了十倍
  7. Debug经验总结:优化、程序员和概率
  8. 搭载「光线追踪」技术的次时代主机会有怎样的画面表现?
  9. 英雄联盟手游主播否认部分英雄后期的作用,难道阿卡丽没未来?
  10. Java中Collection与Collections的区别