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

1059次阅读  |  发布于5年以前

一、简介

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

二、安装

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

三、DEMO

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


    import wx

    app = wx.App()
    win = wx.Frame(
      None,
      title="simple editor",
      size=(410, 335))

    bkg = wx.Panel(win)


    def openFile(evt):
      dlg = wx.FileDialog(
        win,
        "Open",
        "",
        "",
        "All files (*.*)|*.*",
        wx.FD_OPEN | wx.FD_FILE_MUST_EXIST)
      filepath = ''
      if dlg.ShowModal() == wx.ID_OK:
        filepath = dlg.GetPath()
      else:
        return
      filename.SetValue(filepath)
      fopen = open(filepath)
      fcontent = fopen.read()
      contents.SetValue(fcontent)
      fopen.close()


    def saveFile(evt):
      fcontent = contents.GetValue()
      fopen = open(filename.GetValue(), 'w')
      fopen.write(fcontent)
      fopen.close()

    openBtn = wx.Button(bkg, label='open')
    openBtn.Bind(wx.EVT_BUTTON, openFile)

    saveBtn = wx.Button(bkg, label='save')
    saveBtn.Bind(wx.EVT_BUTTON, saveFile)

    filename = wx.TextCtrl(bkg, style=wx.TE_READONLY)
    contents = wx.TextCtrl(bkg, style=wx.TE_MULTILINE)

    hbox = wx.BoxSizer()
    hbox.Add(openBtn, proportion=0, flag=wx.LEFT | wx.ALL, border=5)
    hbox.Add(filename, proportion=1, flag=wx.EXPAND | wx.TOP | wx.BOTTOM, border=5)
    hbox.Add(saveBtn, proportion=0, flag=wx.LEFT | wx.ALL, border=5)

    bbox = wx.BoxSizer(wx.VERTICAL)
    bbox.Add(hbox, proportion=0, flag=wx.EXPAND | wx.ALL)
    bbox.Add(
      contents,
      proportion=1,
      flag=wx.EXPAND | wx.LEFT | wx.BOTTOM | wx.RIGHT,
      border=5)

    bkg.SetSizer(bbox)
    win.Show()
    app.MainLoop()

运行效果:

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8