wxPython构建一个简单的文本编辑器

Windows or Frames?

When people talk about GUIs, they usually speak of windows, menus and icons. Naturally then, you would expect thatwx.Window should represent a window on the screen. Unfortunately, this is not the case. Awx.Window is the base class from which all visual elements are derived (buttons, menus, etc) and what we normally think of as a program window is awx.Frame. This is an unfortunate inconsistency that has led to much confusion for new users.

 

窗口和框架?

当人们谈论起GUIs,他们通常说的是窗口,菜单和图标。自然地,你也期待wx.Window应该是代表屏幕上的一个窗口。

不幸的是,情况不是这样的。一个wx.Window是一个基类,它从视觉派生而来(buttons,menus,等),并且我们通常认为作为一个程序的窗口就是wx.Frame。

这是一个不幸的前后矛盾,这已经导致了许多新手感到困惑。

 

构建一个简单的文本编辑器

在本教程中,我们将构建一个简单的文本编辑器。在这个过程中,我们将研究几个小部件,并了解特性,比如事件和回调。

 

第一步是要做一个简单的框架内与一个可编辑的文本框。一个文本框是TextCtrl小部件。默认情况下,一个文本框是一个单行的领域,但是wx.TE_MULTILINE参数允许您输入多个文本的行。

[python] view plain copy
  1. import wx  
  2.   
  3. class MyFrame(wx.Frame):  
  4.     def __init__(self,parent,title):  
  5.         wx.Frame.__init__(self,parent,title=title,size=(400,300))  
  6.         self.control = wx.TextCtrl(self,style=wx.TE_MULTILINE)  
  7.         self.Show(True)  
  8.   
  9. app = wx.App(False)  
  10. frame = MyFrame(None,"Small Editor")  
  11. app.MainLoop()  


这个例子里,我们从wx.Frame派生并重写它的__init__方法。声明一个可以编辑TextCtrl控件。

请注意,因为在MyFrame的内部运行它的__init__方法self.Show(),我们不再需要显式地调用frame.Show()。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值