Python中使用wxPython开发的一个简易笔记本程序实例

时间:2022-02-26 01:30:03

一、简介

wxPython是Python语言的一套优秀的GUI图形库,允许Python程序员很方便的创建完整的、功能键全的GUI用户界面。 wxPython是作为优秀的跨平台GUI库wxWidgets的Python封装和Python模块的方式提供给用户的。

二、安装

参考官方网站:http://www.wxpython.org/download.php

三、DEMO

本demo是一个简单的记事本软件,可以打开文件,修改并保存。

  1. import wx 
  2.   
  3. app = wx.App() 
  4. win = wx.Frame( 
  5.   None, 
  6.   title="simple editor"
  7.   size=(410, 335)) 
  8.   
  9. bkg = wx.Panel(win) 
  10.   
  11.   
  12. def openFile(evt): 
  13.   dlg = wx.FileDialog( 
  14.     win, 
  15.     "Open"
  16.     ""
  17.     ""
  18.     "All files (*.*)|*.*"
  19.     wx.FD_OPEN | wx.FD_FILE_MUST_EXIST) 
  20.   filepath = '' 
  21.   if dlg.ShowModal() == wx.ID_OK: 
  22.     filepath = dlg.GetPath() 
  23.   else
  24.     return 
  25.   filename.SetValue(filepath) 
  26.   fopen = open(filepath) 
  27.   fcontent = fopen.read() 
  28.   contents.SetValue(fcontent) 
  29.   fopen.close() 
  30.   
  31.   
  32. def saveFile(evt): 
  33.   fcontent = contents.GetValue() 
  34.   fopen = open(filename.GetValue(), 'w'
  35.   fopen.write(fcontent) 
  36.   fopen.close() 
  37.   
  38. openBtn = wx.Button(bkg, label='open'
  39. openBtn.Bind(wx.EVT_BUTTON, openFile) 
  40.   
  41. saveBtn = wx.Button(bkg, label='save'
  42. saveBtn.Bind(wx.EVT_BUTTON, saveFile) 
  43.   
  44. filename = wx.TextCtrl(bkg, style=wx.TE_READONLY) 
  45. contents = wx.TextCtrl(bkg, style=wx.TE_MULTILINE) 
  46.   
  47. hbox = wx.BoxSizer() 
  48. hbox.Add(openBtn, proportion=0, flag=wx.LEFT | wx.ALL, border=5) 
  49. hbox.Add(filename, proportion=1, flag=wx.EXPAND | wx.TOP | wx.BOTTOM, border=5) 
  50. hbox.Add(saveBtn, proportion=0, flag=wx.LEFT | wx.ALL, border=5) 
  51.   
  52. bbox = wx.BoxSizer(wx.VERTICAL) 
  53. bbox.Add(hbox, proportion=0, flag=wx.EXPAND | wx.ALL) 
  54. bbox.Add( 
  55.   contents, 
  56.   proportion=1, 
  57.   flag=wx.EXPAND | wx.LEFT | wx.BOTTOM | wx.RIGHT, 
  58.   border=5) 
  59.   
  60. bkg.SetSizer(bbox) 
  61. win.Show() 
  62. app.MainLoop() 

运行效果:

Python中使用wxPython开发的一个简易笔记本程序实例