使用wxPython开发带有GUI图形界面的Python程序简单实例
开发环境: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程序简单实例相关推荐
- 使用python开发的图形界面的pdf拆分合并工具
前一段有一个几千页的pdf文件,想分割成几个小的文件,本来用python写过一个pdf文件拆分的工具,因为笔记本坏掉,代码丢掉了.又不想重写,就上网去搜pdf的拆分工具,结果发现很多pdf拆分工具,有 ...
- Win系统的Hyper-V虚拟机上安装一个图形界面的Linux系统
这件事情呢,一直想干但又觉得太陌生和麻烦,无奈现在到了非装不可的时候,只好硬着头皮去装. 在此之前,我不懂什么叫做虚拟机,linux也接触甚少.经过3天的折腾,终于装好了带有图形界面的linux(字符 ...
- 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程序,请问输出结果是什么? ...
- c语言 图形界面 入门,C语言是怎么实现图形界面的?
GTK就可以,一个基于C语言的免费.开源.跨平台图形工具包,可以直接使用C语言调用实现图形界面开发,下面我简单介绍一下这个工具包的安装和使用,这里以Windows平台为例: 1.首先,下载GTK安装包 ...
- devc语言图形编程教程_C语言是怎么实现图形界面的?
GTK就可以,一个基于C语言的免费.开源.跨平台图形工具包,可以直接使用C语言调用实现图形界面开发,下面我简单介绍一下这个工具包的安装和使用,这里以Windows平台为例: 1.首先,下载GTK安装包 ...
- python画折线图详解-python绘制简单折线图代码示例
1.画最简单的直线图 代码如下: import numpy as np import matplotlib.pyplot as plt x=[0,1] y=[0,1] plt.figure() plt ...
- 方便无阻且全面的python程序exe反编译,可以不使用十六进制编辑器完成的常规反编操作
Python源代码能够被pyinstaller打包为脱离Python环境的exe可执行文件,然而,在有些特殊情况下,比如剖析病毒,数据恢复,需要反过来把可执行文件反编译为Python源代码,这个过程是 ...
- python执行结果在gui界面显示_Python PyQt5运行程序把输出信息展示到GUI图形界面上...
概述:最近在赶毕业设计,遇到一个问题,爬虫模块我用PyQt5写了图形界面,为了将所有的输出信息都显示到图形界面上遇到了问题. 先演示一下效果最终效果吧,下面两张图用来镇楼.可以看到我们图形界面和程序运 ...
- python 从一道作业题到制作一个图形界面的“诈金花”游戏
题目很简单:就是自己写一个程序,实现诈金花游戏的发牌.判断输赢. 规则: 一付扑克牌,去掉大小王,每个玩家发3张牌,最后比大小,看谁赢. 牌型: 豹子:一样大的三张牌,如10,10,10 顺金:又称同 ...
最新文章
- 爬虫之requests模块在headers参数中携带cookie发送请求
- 玩转CSDN博客之自定义博客栏目,根据需要定制栏目
- 最人性化的在线作图工具
- 软件工程之四则运算开发感悟与收获
- oracle数据导入导出
- 南邮计算机学院是211,南京邮电大学是211还是985
- java.sql.SQLException: Access denied for user 'Administrator'@'localhost' (using password: YES)
- 基于sklearn和keras的数据切分与交叉验证
- kong_团结的面Kong:国际妇女节
- Solr中的日期/时间表示
- java爬虫爬豆瓣图书_网络爬虫——爬取豆瓣图书
- dataframe.append()合并多个列名相同的文件
- 提高代码质量的那些建议
- 玩转基因组浏览器之查看gwas结果
- java表白 520
- Linux clock子系统【3】-i2c控制器打开时钟的流程分析(devm_clk_get)(consumer侧)
- url中如果有引号的处理
- checksum命令 linux_Linux下命令故障集结
- GPU视频压缩2—Multiple Layer Parallel Motion Estimation on GPU for High Efficiency Video Coding (HEVC)
- 小程序社交类目需要上传《非经营性互联网信息服务备案核准》,什么是《非经营性互联网信息服务备案核准》?