网络编程
位置:首页>> 网络编程>> Python编程>> python使用wxpython开发简单记事本的方法

python使用wxpython开发简单记事本的方法

作者:Gavin_dinggengjia  发布时间:2022-05-15 18:06:12 

标签:python,wxpython,记事本

本文实例讲述了python使用wxpython开发简单记事本的方法。分享给大家供大家参考。具体分析如下:

wxPython是Python编程语言的一个GUI工具箱。他使得Python程序员能够轻松的创建具有健壮、功能强大的图形用户界面的程序。它是Python语言对流行的wxWidgets跨平台GUI工具库的绑定。而wxWidgets是用C++语言写成的。

和Python语言与wxWidgetsGUI工具库一样,wxPython是开源软件。这意味着任何人都可以免费地使用它并且可以查看和修改它的源代码,或者贡献补丁,增加功能。

wxPython是跨平台的。这意味着同一个程序可以不经修改地在多种平台上运行。现今支持的平台有:32位微软Windows操作系统、大多数Unix或类Unix系统、苹果MacOS X。

下面使用wxpython编写一个简单的记事本程序,可以打开本地文件,编辑,保存。


#!/usr/bin/python
import wx
def OnOpen(event):
 """
 Load a file into the textField.
 """
 dialog = wx.FileDialog(None,'Notepad',style = wx.OPEN)
 if dialog.ShowModal() == wx.ID_OK:
   filename.SetValue(dialog.GetPath())
   file = open(dialog.GetPath())
   contents.SetValue(file.read())
   file.close()
 dialog.Destroy()
def OnSave(event):
 """
 Save text into the orignal file.
 """
 if filename.GetValue() == '':
   dialog = wx.FileDialog(None,'Notepad',style = wx.SAVE)
   if dialog.ShowModal() == wx.ID_OK:
     filename.SetValue(dialog.GetPath())
     file = open(dialog.GetPath(), 'w')
     file.write(contents.GetValue())
     file.close()
   dialog.Destory()
 else:
   file = open(filename.GetValue(), 'w')
   file.write(contents.GetValue())
   file.close()
app = wx.App()
win = wx.Frame(None, title="Simple Editor", size=(600,400))
bkg = wx.Panel(win)
# Define a 'load' button and its label,
# bind to an button event with a function 'load'
loadButton = wx.Button(bkg, label='Open')
loadButton.Bind(wx.EVT_BUTTON, OnOpen)
# Define a 'save' button and its label,
# bind to an button event with a function 'save'
saveButton = wx.Button(bkg, label='Save')
saveButton.Bind(wx.EVT_BUTTON, OnSave)
# Define a textBox for filename.
filename = wx.TextCtrl(bkg)
# Define a textBox for file contents.
contents = wx.TextCtrl(bkg, style=wx.TE_MULTILINE | wx.HSCROLL)
# Use sizer to set relative position of the components.
# Horizontal layout
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)
# Vertical layout
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()

运行效果如下图所示:

python使用wxpython开发简单记事本的方法

这个例子是《Python基础教程》中的一个例子,并做了一些修改。虽然完成了基本的记事本功能,但是界面略显简单,而且代码也没有很好地遵循面向对象编程原则。

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

0
投稿

猜你喜欢

  • 简介rpc:远程过程调用协议。简单的来说就是客户端可以很方便得远程调用服务端的接口程序,而不用管底层是如何实现的。XML-RPC的全称是XM
  • 一:关于MySQL5 MySQL5系列数据库是MySQL的最新版本的数据库,比较流行的发行版是mysql-5.0.18。MySQL 英文官方
  • 用div+css制作页面,想实现左右两部分固定宽度,而中间部分不固定,并随着屏幕分辨率的的变化而自动伸缩。大家可知道应该如何实现? &nbs
  • 1 集合集合可以使用大括号({})或者set()函数进行创建,但是创建一个空集合必须使用set()函数,而不能用{},大括号是用来创建一个空
  • 因DWS内核目前支持的线程数很少,个人门户首页打开后,如果并发请求加载的模块数过多,很容易导致DWS崩溃,故而给之前写的AJAX类加了个顺序
  • 最近在做项目的时候经常会用到定时任务,由于我的项目是使用Java来开发,用的是SpringBoot框架,因此要实现这个定时任务其实并不难。后
  • Session每台电脑访问服务器,都有独立的session,key值都一样,内容不一样。1.session保存在服务器上。2.session
  • 前言我最近喜欢去听情感类的节目,比如说,婚姻类,我可能老了吧。我就想着怎么把音乐下载下来了,保存到手机上,方便我们业余时间去听。发送请求首先
  • QueryCache(下面简称QC)是根据SQL语句来cache的。一个SQL查询如果以select开头,那么MySQL服务器将尝试对其使
  • 本文实例讲述了Python pandas RFM模型应用。分享给大家供大家参考,具体如下:什么是RFM模型根据美国数据库营销研究所Arthu
  • 分形几何学的基本思想:客观事物具有自相似性的层次结构,局部和整体在形态,功能,信息,时间,空间等方面具有统计意义上的相似性,称为自相似性,自
  • 组合模式是把一个类别归为一个整体,并且组织多个整体之间的关系,使用通过树形结构来描述所有整体。一般的编写方式为一个类别对象下添加多个该对象的
  • 如下所示:###方法1:用shift函数,不用通过循环import pandas as pdimport numpy as npimport
  • IE8主页http://www.microsoft.com/windows/products/winfamily/ie/ie8/defaul
  • Javascript中的eval函数让我们可以很方便地操作一系列变量(a1,a2,a3,……)。自从VBScript 5.0之后,我们也可以
  • 有时候在使用 Python 的时候,想要对一个数字或者字符串进行补零操作,即把「1」变为一个八位数的「00000001」,这个时候可以使用一
  • zip文件格式是通用的文档压缩标准,在ziplib模块中,使用ZipFile类来操作zip文件,下面具体介绍一下:class zipfile
  • 一、问题描述当用JS调用form的方法submit直接提交form的时候,submit事件不响应。为什么?知道的请回复。类比一下,我用inp
  • 本文通过一个详细的例子,来阐述了在线编辑XML文档数据的方法。由于Netscape对XML的支持比较弱,因此,要实现跨平台的数据交换,数据的
  • 一、PsutilPython当中的Psutil模块是个跨平台库,它能够轻松获取系统运行的进程和系统利用率,包括CPU、内存、磁盘、网络等信息
手机版 网络编程 asp之家 www.aspxhome.com