python GUI之wxPython

来源:互联网 发布:java网页开发框架 编辑:程序博客网 时间:2024/05/29 12:40

目录

  • 目录
  • 通用GUI平台
  • wxPython
    • 下载安装
    • 使用

1 通用GUI平台

  • Python可用的GUI工具包很多,如下图所示,每个工具包度都有利有弊,Tkinter实际上类似于标准,集成与python内部,但功能有限,很难做出复杂漂亮的界面,而wxPython成熟而且特性丰富,也是Python之父Guido van Rossum的最爱。
工具包 描述 网站 Tkinter 使用TK平台。很容易得到。半标准 http://wiki.python.org/moin/TkInter wxpython 基于wxWindows.跨平台越来越流行 http:/wxpython.org PythonWin 只能在Window上使用。使用了本机的Windows GUI功能 http://starship.python.net/crew/mhammond Java Swing 只能用于Jython.使用本机的Java GUI http://java.sun.com/docs/books/tutoria/uiswing PyGTK 使用GTK平台,在Linux上很流行 http://pygtk.org PyQt 使用Qt平台,跨平台 http://wiki.python.org/moin/PyQt

2 wxPython

下载安装.

  • 官网分别下载安装 wxPython3.0-win32-3.0.2.0-py27.exe及wxPython3.0-win32-docs-demos-3.0.2.0.exe, 需注意的是wxPython必须对应电脑上已安装的python版本
  • demos强烈建议安装,示例和文档都非常详细,开发过程中基本上可以拿来就用

使用

  • 简单的hello
#coding:utf-8import wxprint(__name__)if __name__=='__mian()__':    app = wx.App()    frame = wx.Frame(None,-1,u'入门')    frame.Show()    app.MainLoop()

这里写图片描述

  • 带事件触发的 自适应窗口
#coding:utf8import  wxdef load(event):    file = open(fileName.GetValue())    contents.SetValue(file.read())    file.close()def save(event):    file = open(fileName.GetValue(),'w')    file.write(contents.GetValue())    file.close()if __name__=='__main__':    app = wx.App()    win = wx.Frame(None,title='Simple Editor',size=(410,335))    bkg = wx.Panel(win)    loadButton = wx.Button(bkg,label='Open')    loadButton.Bind(wx.EVT_BUTTON,load)    saveButton = wx.Button(bkg,label='Save')    saveButton.Bind(wx.EVT_BUTTON,save)    fileName = wx.TextCtrl(bkg)    contents= wx.TextCtrl(bkg,style=wx.TE_MULTILINE|wx.HSCROLL)    hbox = wx.BoxSizer()    hbox.Add(fileName,proportion=1,flag=wx.EXPAND)    hbox.Add(loadButton,proportion=0,flag=wx.LEFT,border=5)    hbox.Add(saveButton,proportion=0,flag=wx.LEFT,border=5)    vbox = wx.BoxSizer(wx.VERTICAL)    vbox.Add(hbox,proportion=0,flag=wx.EXPAND | wx.ALL, border=5)    vbox.Add(contents,proportion=1,flag=wx.EXPAND | wx.LEFT | wx.BOTTOM | wx.RIGHT, border=5)    bkg.SetSizer(vbox)    win.Show()    app.MainLoop()

这里写图片描述

  • 更多的使用参照 demos 里的文档和例程
    这里写图片描述
1 0
原创粉丝点击