用python编写最简单的记事本_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()

运行效果如下图所示:

2015520160656465.png&

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

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

article_wechat2021.jpg?1111

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值