开发环境:Python 3.6

首先安装wxPython包

pip install wxPython

下载wxFormBuilder可以很方便的绘制用户界面各种控件

https://github.com/wxFormBuilder/wxFormBuilder

使用wxFormBuilder绘制如上图所示一个简单的用户界面流程:

1.File-New Project新建项目

2.添加Form-Frame

3.添加Layout-wxBoxSizer

4.下面就可以添加自定义的其他各种按钮啊之类的控件了

添加了一个wxButton和一个wxStatusBar,设置按钮的尺寸为Expand和Stretch可以填充满父容器

5.为按钮绑定单击事件

6.切换到Python视图可以直接预览当前图形界面对应的生成代码

# -*- coding: utf-8 -*- ###########################################################################
## Python code generated with wxFormBuilder (version Jul  4 2018)
## http://www.wxformbuilder.org/
##
## PLEASE DO *NOT* EDIT THIS FILE!
###########################################################################import wx
import wx.xrc###########################################################################
## Class MyFrame3
###########################################################################class MyFrame3 ( wx.Frame ):def __init__( self, parent ):wx.Frame.__init__ ( self, parent, id = wx.ID_ANY, title = wx.EmptyString, pos = wx.DefaultPosition, size = wx.Size( 500,300 ), style = wx.DEFAULT_FRAME_STYLE|wx.TAB_TRAVERSAL )self.SetSizeHints( wx.DefaultSize, wx.DefaultSize )bSizer2 = wx.BoxSizer( wx.VERTICAL )self.m_button2 = wx.Button( self, wx.ID_ANY, u"MyButton", wx.DefaultPosition, wx.DefaultSize, 0 )bSizer2.Add( self.m_button2, 1, wx.ALL|wx.EXPAND, 5 )self.SetSizer( bSizer2 )self.Layout()self.m_statusBar2 = self.CreateStatusBar( 1, wx.STB_SIZEGRIP, wx.ID_ANY )self.Centre( wx.BOTH )# Connect Eventsself.m_button2.Bind( wx.EVT_BUTTON, self.m_button2OnButtonClick )def __del__( self ):pass# Virtual event handlers, overide them in your derived classdef m_button2OnButtonClick( self, event ):event.Skip()

拿到这部分代码后就可以进行修改编辑成自己的带GUI界面的程序了,下面是简单的效果演示和代码,运行该py文件后会出现一个简单的Form窗体,中间有一个按钮,底部有一个状态条,单击会弹出打开文件的对话框,选择文件后弹出一个带有确定按钮和文件名的dialog对话框,单击确定按钮后,状态条里面显示刚才选择的文件完整路径和文件名

# -*- coding: utf-8 -*- ###########################################################################
## Python code generated with wxFormBuilder (version Jul  4 2018)
## http://www.wxformbuilder.org/
##
## PLEASE DO *NOT* EDIT THIS FILE!
###########################################################################import wx
import wx.xrc###########################################################################
## Class MyFrame3
###########################################################################class MyFrame3(wx.Frame):def __init__(self, parent):wx.Frame.__init__(self, parent, id=wx.ID_ANY, title='我的GUI程序', pos=wx.DefaultPosition,size=wx.Size(500, 300), style=wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL)self.SetSizeHints(wx.DefaultSize, wx.DefaultSize)bSizer2 = wx.BoxSizer(wx.VERTICAL)self.m_button2 = wx.Button(self, wx.ID_ANY, u"打开文件", wx.DefaultPosition, wx.DefaultSize, 0)self.m_button2.SetFont(wx.Font(18, wx.FONTFAMILY_SWISS, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, False, "微软雅黑"))bSizer2.Add(self.m_button2, 1, wx.ALL | wx.EXPAND, 5)self.SetSizer(bSizer2)self.Layout()self.m_statusBar2 = self.CreateStatusBar(1, wx.STB_SIZEGRIP, wx.ID_ANY)self.Centre(wx.BOTH)# Connect Eventsself.m_button2.Bind(wx.EVT_BUTTON, self.m_button2OnButtonClick)def __del__(self):pass# Virtual event handlers, overide them in your derived classdef m_button2OnButtonClick(self, event):openFileDialog = wx.FileDialog(frame, "请选择要打开的Excel文件", "", "","Excel格式 (*.xls)|*.xls",wx.FD_OPEN | wx.FD_FILE_MUST_EXIST)if openFileDialog.ShowModal() == wx.ID_OK:filePath = openFileDialog.GetPath()if wx.MessageBox("数据处理完成", "提示", wx.OK | wx.ICON_INFORMATION) == wx.OK:self.m_statusBar2.SetStatusText(filePath)openFileDialog.Destroy()app = wx.App(False)
frame = MyFrame3(None)
frame.Show()
app.MainLoop()

使用wxPython开发带有GUI图形界面的Python程序简单实例相关推荐

  1. 使用python开发的图形界面的pdf拆分合并工具

    前一段有一个几千页的pdf文件,想分割成几个小的文件,本来用python写过一个pdf文件拆分的工具,因为笔记本坏掉,代码丢掉了.又不想重写,就上网去搜pdf的拆分工具,结果发现很多pdf拆分工具,有 ...

  2. Win系统的Hyper-V虚拟机上安装一个图形界面的Linux系统

    这件事情呢,一直想干但又觉得太陌生和麻烦,无奈现在到了非装不可的时候,只好硬着头皮去装. 在此之前,我不懂什么叫做虚拟机,linux也接触甚少.经过3天的折腾,终于装好了带有图形界面的linux(字符 ...

  3. python end if_阅读下面的Python程序,请问输出结果是什么? print(T,end=' ') if not 0 else print('F',end=' ') print(T...

    [简答题]How do critical thinking and our emotions complement each other? [简答题]阅读下面的Python程序,请问输出结果是什么? ...

  4. c语言 图形界面 入门,C语言是怎么实现图形界面的?

    GTK就可以,一个基于C语言的免费.开源.跨平台图形工具包,可以直接使用C语言调用实现图形界面开发,下面我简单介绍一下这个工具包的安装和使用,这里以Windows平台为例: 1.首先,下载GTK安装包 ...

  5. devc语言图形编程教程_C语言是怎么实现图形界面的?

    GTK就可以,一个基于C语言的免费.开源.跨平台图形工具包,可以直接使用C语言调用实现图形界面开发,下面我简单介绍一下这个工具包的安装和使用,这里以Windows平台为例: 1.首先,下载GTK安装包 ...

  6. python画折线图详解-python绘制简单折线图代码示例

    1.画最简单的直线图 代码如下: import numpy as np import matplotlib.pyplot as plt x=[0,1] y=[0,1] plt.figure() plt ...

  7. 方便无阻且全面的python程序exe反编译,可以不使用十六进制编辑器完成的常规反编操作

    Python源代码能够被pyinstaller打包为脱离Python环境的exe可执行文件,然而,在有些特殊情况下,比如剖析病毒,数据恢复,需要反过来把可执行文件反编译为Python源代码,这个过程是 ...

  8. python执行结果在gui界面显示_Python PyQt5运行程序把输出信息展示到GUI图形界面上...

    概述:最近在赶毕业设计,遇到一个问题,爬虫模块我用PyQt5写了图形界面,为了将所有的输出信息都显示到图形界面上遇到了问题. 先演示一下效果最终效果吧,下面两张图用来镇楼.可以看到我们图形界面和程序运 ...

  9. python 从一道作业题到制作一个图形界面的“诈金花”游戏

    题目很简单:就是自己写一个程序,实现诈金花游戏的发牌.判断输赢. 规则: 一付扑克牌,去掉大小王,每个玩家发3张牌,最后比大小,看谁赢. 牌型: 豹子:一样大的三张牌,如10,10,10 顺金:又称同 ...

最新文章

  1. 爬虫之requests模块在headers参数中携带cookie发送请求
  2. 玩转CSDN博客之自定义博客栏目,根据需要定制栏目
  3. 最人性化的在线作图工具
  4. 软件工程之四则运算开发感悟与收获
  5. oracle数据导入导出
  6. 南邮计算机学院是211,南京邮电大学是211还是985
  7. java.sql.SQLException: Access denied for user 'Administrator'@'localhost' (using password: YES)
  8. 基于sklearn和keras的数据切分与交叉验证
  9. kong_团结的面Kong:国际妇女节
  10. Solr中的日期/时间表示
  11. java爬虫爬豆瓣图书_网络爬虫——爬取豆瓣图书
  12. dataframe.append()合并多个列名相同的文件
  13. 提高代码质量的那些建议
  14. 玩转基因组浏览器之查看gwas结果
  15. java表白 520
  16. Linux clock子系统【3】-i2c控制器打开时钟的流程分析(devm_clk_get)(consumer侧)
  17. url中如果有引号的处理
  18. checksum命令 linux_Linux下命令故障集结
  19. GPU视频压缩2—Multiple Layer Parallel Motion Estimation on GPU for High Efficiency Video Coding (HEVC)
  20. 小程序社交类目需要上传《非经营性互联网信息服务备案核准》,什么是《非经营性互联网信息服务备案核准》?

热门文章

  1. C语言中利用Swap函数交换变量a,b
  2. 手把手教你写批处理-批处理的介绍
  3. 浅谈tomcat优化
  4. FileRun多功能网盘的搭建
  5. JS原型对象和JS原型链
  6. 一本书,一个软件思想和创意的T台大道
  7. 前端性能优化之“离线缓存manifest”
  8. 2020年春季中国科大数字图像分析DIA考试试题回忆
  9. 关于二进制的一些运算
  10. 皇甫懒懒 华清远见Java学习笔记-身份证校验