基于wxpython实现的windows GUI程序实例


Posted in Python onMay 30, 2015

本文实例讲述了基于wxpython实现的windows GUI程序。分享给大家供大家参考。具体如下:

# using a wx.Frame, wx.MenuBar, wx.Menu, wx.Panel, wx.StaticText, wx.Button, 
# and a wx.BoxSizer to show a rudimentary wxPython Windows GUI application
# wxPython package from: http://prdownloads.sourceforge.net/wxpython/
# I downloaded: wxPython2.5-win32-ansi-2.5.3.1-py23.exe
# if you have not already done so install the Python compiler first
# I used Python-2.3.4.exe (the Windows installer package for Python23) 
# from http://www.python.org/2.3.4/
# tested with Python23   vegaseat   24jan2005
import wx
class Frame1(wx.Frame):
  # create a simple windows frame (sometimes called form)
  # pos=(ulcX,ulcY) size=(width,height) in pixels
  def __init__(self, parent, title):
    wx.Frame.__init__(self, parent, -1, title, pos=(150, 150), size=(350, 250))
    # create a menubar at the top of the user frame
    menuBar = wx.MenuBar()
    # create a menu ... 
    menu = wx.Menu()
    # ... add an item to the menu
    # \tAlt-X creates an accelerator for Exit (Alt + x keys)
    # the third parameter is an optional hint that shows up in 
    # the statusbar when the cursor moves across this menu item
    menu.Append(wx.ID_EXIT, "E&xit\tAlt-X", "Exit the program")
    # bind the menu event to an event handler, share QuitBtn event
    self.Bind(wx.EVT_MENU, self.OnQuitButton, id=wx.ID_EXIT)
    # put the menu on the menubar
    menuBar.Append(menu, "&File")
    self.SetMenuBar(menuBar)
    # create a status bar at the bottom of the frame
    self.CreateStatusBar()
    # now create a panel (between menubar and statusbar) ...
    panel = wx.Panel(self)
    # ... put some controls on the panel
    text = wx.StaticText(panel, -1, "Hello World!")
    text.SetFont(wx.Font(24, wx.SCRIPT, wx.NORMAL, wx.BOLD))
    text.SetSize(text.GetBestSize())
    quitBtn = wx.Button(panel, -1, "Quit")
    messBtn = wx.Button(panel, -1, "Message")
    # bind the button events to event handlers
    self.Bind(wx.EVT_BUTTON, self.OnQuitButton, quitBtn)
    self.Bind(wx.EVT_BUTTON, self.OnMessButton, messBtn)
    # use a sizer to layout the controls, stacked vertically
    # with a 10 pixel border around each
    sizer = wx.BoxSizer(wx.VERTICAL)
    sizer.Add(text, 0, wx.ALL, 10)
    sizer.Add(quitBtn, 0, wx.ALL, 10)
    sizer.Add(messBtn, 0, wx.ALL, 10)
    panel.SetSizer(sizer)
    panel.Layout()
  def OnQuitButton(self, evt):
    # event handler for the Quit button click or Exit menu item
    print "See you later alligator! (goes to stdout window)"
    wx.Sleep(1)  # 1 second to look at message
    self.Close()
  def OnMessButton(self, evt):
    # event handler for the Message button click
    self.SetStatusText('101 Different Ways to Spell "Spam"')
class wxPyApp(wx.App):
  def OnInit(self):
    # set the title too
    frame = Frame1(None, "wxPython GUI 2")
    self.SetTopWindow(frame)
    frame.Show(True)
    return True
# get it going ...
app = wxPyApp(redirect=True)
app.MainLoop()

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
用Python抢过年的火车票附源码
Dec 07 Python
python获取文件路径、文件名、后缀名的实例
Apr 23 Python
分享一下Python数据分析常用的8款工具
Apr 29 Python
python2.7实现邮件发送功能
Dec 12 Python
python调用opencv实现猫脸检测功能
Jan 15 Python
Django 对象关系映射(ORM)源码详解
Aug 06 Python
Python list与NumPy array 区分详解
Nov 06 Python
tensorflow 实现从checkpoint中获取graph信息
Feb 10 Python
使用matplotlib的pyplot模块绘图的实现示例
Jul 12 Python
最简单的matplotlib安装教程(小白)
Jul 28 Python
python实现自动化群控的步骤
Apr 11 Python
Python批量解压&压缩文件夹的示例代码
Apr 04 Python
python简单实现旋转图片的方法
May 30 #Python
Python实现控制台输入密码的方法
May 29 #Python
python删除过期文件的方法
May 29 #Python
Python的Django框架中TEMPLATES项的设置教程
May 29 #Python
编写Python脚本把sqlAlchemy对象转换成dict的教程
May 29 #Python
Python fileinput模块使用实例
May 28 #Python
Python sys.argv用法实例
May 28 #Python
You might like
用PHP实现ODBC数据分页显示一例
2006/10/09 PHP
php fckeditor 调用的函数
2009/06/21 PHP
让PHP开发者事半功倍的十大技巧小结
2010/04/20 PHP
PHP+MYSQL中文乱码问题
2015/07/01 PHP
PHP生成制作验证码的简单实例
2016/06/12 PHP
基于php解决json_encode中文UNICODE转码问题
2020/11/10 PHP
jQuery的一些特性和用法整理小结
2010/01/13 Javascript
Javascript面向对象之四 继承
2011/02/08 Javascript
基于jquery ajax 用户无刷新登录方法详解
2012/04/28 Javascript
javascript 获取HTML DOM父、子、临近节点
2014/06/16 Javascript
jquery中ready()函数执行的时机和window的load事件比较
2015/06/22 Javascript
详解使用webpack构建多页面应用
2017/12/21 Javascript
利用JavaScript缓存远程窃取Wi-Fi密码的思路详解
2018/11/05 Javascript
JavaScript的console命令使用实例
2019/12/03 Javascript
使用Webpack 搭建 Vue3 开发环境过程详解
2020/07/28 Javascript
解决vue elementUI 使用el-select 时 change事件的触发问题
2020/11/17 Vue.js
在vue中动态修改css其中一个属性值操作
2020/12/07 Vue.js
基于element-ui封装表单金额输入框的方法示例
2021/01/06 Javascript
使用Python的Bottle框架写一个简单的服务接口的示例
2015/08/25 Python
Python使用try except处理程序异常的三种常用方法分析
2018/09/05 Python
PyTorch之图像和Tensor填充的实例
2019/08/18 Python
Python 使用元类type创建类对象常见应用详解
2019/10/17 Python
Python的缺点和劣势分析
2019/11/19 Python
详解python环境安装selenium和手动下载安装selenium的方法
2020/03/17 Python
英国在线珠宝店:The Jewel Hut
2017/03/20 全球购物
世界领先的26岁以下学生和青少年旅行预订网站:StudentUniverse
2018/07/01 全球购物
荷兰网上药店:Drogisterij.net
2019/09/03 全球购物
资产经营总监岗位职责
2013/12/04 职场文书
本科毕业生求职自荐信
2014/02/03 职场文书
淘宝活动总结范文
2014/06/26 职场文书
党员批评与自我批评发言材料
2014/10/14 职场文书
中学校园广播稿
2015/08/18 职场文书
2019大学生暑期实习心得总结
2019/08/21 职场文书
MongoDB orm框架的注意事项及简单使用
2021/06/20 MongoDB
一篇文章带你复习java知识点
2021/06/28 Java/Android
OpenCV实现反阈值二值化
2021/11/17 Java/Android