wxPython Demo 学习
来源:互联网 发布:嘉兴nit软件培训 编辑:程序博客网 时间:2024/05/16 06:44
第一个程序: "Hello, World"
依照传统,我们首先编写一个小小的 "Hello, world" 应用程序。代码如下:
#!/usr/bin/env pythonimport wxapp = wx.App(False) # Create a new app, don't redirect stdout/stderr to a window.frame = wx.Frame(None, wx.ID_ANY, "Hello World") # A Frame is a top-level window.frame.Show(True) # Show the frame.app.MainLoop()
程序说明:
app = wx.App(False)
每一个wxPython app 都是 wx.App 的一个实例。 对于大多数简单的应用程序来说,你可以使用 wx.App 原型。当你用到更复杂的应用程序时,你需要扩展 wx.App 类。参数 "False" 表示 "不要重定向stdout and stderr 到一个窗口"。
wx.Frame(None,wx.ID_ANY,"Hello")
wx.Frame 是一个顶层窗口。语法是 x.Frame(Parent, Id, Title) 。大部分结构有这样的形式 (一个父对象,后面跟一个ID)。在这个例子中,我们使用 None 表示没有"父对象" , wx.ID_ANY 要求 wxWidgets 为我们分配一个id。
frame.Show(True)
我们通过"showing" 来显示则个框架。
app.MainLoop()
最后,我们启动应用程序的 MainLoop 语句,它的作用是处理事件。
注:你几乎总是需要使用 wx.ID_ANY 或者由 wxWidgets 提供的其他的 standard ID 。你也可以使用你自己的 IDs, 但通常没有必要这样做。
运行该程序,你应该可以看到这样一个窗口:
Windows or Frames?
当人们谈论 GUIs 的时候, 他们通常会说窗口,菜单和图标。理所当然的,你期望 wx.Window 应该在屏幕上显示一个窗口。不幸的是,情况并非如此。 wx.Window 是一个派生了所有的可视化元素 (按钮, 菜单, 等)的基本类,我们通常认为的程序窗口是一个 wx.Frame 。这个不幸的不一致给很多新用户带来了困惑。
构建一个简单的文本编辑器
在本教程中我们将构建一个简单的文本编辑器。在这个过程中,我们将会探讨几个小部件,并了解一些特性,如事件和回调。
第一步
第一部是做一个包含可编辑文本框的简单框架。 文本框用到了 wx.TextCtrl 组件。 默认情况下,文本框是一个单行字段,但是wx.TE_MULTILINE 参数允许你输入多行文本。
#!/usr/bin/env pythonimport wxclass MyFrame(wx.Frame): """ We simply derive a new class of Frame. """ def __init__(self, parent, title): wx.Frame.__init__(self, parent, title=title, size=(200,100)) self.control = wx.TextCtrl(self, style=wx.TE_MULTILINE) self.Show(True)app = wx.App(False)frame = MyFrame(None, 'Small editor')app.MainLoop()
在这个例子中, 我们从 wx.Frame 派生并且重写了 __init__ 方法。 这里我们声明了一个新的 wx.TextCtrl ,这是一个简单的文本编辑控件。请注意:由于 MyFrame 在内置的 __init__ 方法运行了 self.Show() , 我们不需要再显示的调用 frame.Show() 。
添加一个菜单栏
每个应用程序都应该有一个菜单栏和状态栏。让我们来把它们添加进来:
import wxclass MainWindow(wx.Frame): def __init__(self, parent, title): wx.Frame.__init__(self, parent, title=title, size=(200,100)) self.control = wx.TextCtrl(self, style=wx.TE_MULTILINE) self.CreateStatusBar() # A Statusbar in the bottom of the window # Setting up the menu. filemenu= wx.Menu() # wx.ID_ABOUT and wx.ID_EXIT are standard IDs provided by wxWidgets. filemenu.Append(wx.ID_ABOUT, "&About"," Information about this program") filemenu.AppendSeparator() filemenu.Append(wx.ID_EXIT,"E&xit"," Terminate the program") # Creating the menubar. menuBar = wx.MenuBar() menuBar.Append(filemenu,"&File") # Adding the "filemenu" to the MenuBar self.SetMenuBar(menuBar) # Adding the MenuBar to the Frame content. self.Show(True)app = wx.App(False)frame = MainWindow(None, "Sample editor")app.MainLoop()
提示: 请注意 wx.ID_ABOUT 和wx.ID_EXIT 标示。 这些是wxWidgets提供的标准IDS (see a full listhere)。 如果有可用的,使用标准标示是一个很好的习惯。 这有助于让 wxWidgets 知道如何在每一个平台显示这个组件,使其看起来更加自然。
- wxPython Demo 学习
- 学习wxpython
- wxPython学习
- wxPython MVC 数据库小demo
- 一个WXPython+采集的 Demo
- wxPython学习笔记一
- wxPython学习笔记二
- wxPython学习笔记三
- wxPython学习1
- wxPython学习2
- wxPython 学习笔记之一
- wxPython学习--文本显示
- 通过wxPython学习wxWindow
- wxPython 学习笔记
- wxPython控件学习
- wxPython控件学习续
- WxPython框架学习初步
- wxpython学习1
- MVC设计web网址 ---- 为数据建模
- linux常用命令100个用法
- 无限级分类Asp.net Mvc实现
- Redis源码学习-NoSql复杂类型对象的hash管理(二:List)
- 常用的应用层整型编解码函数
- wxPython Demo 学习
- 第十三周-求出并输出Fibnacci序列的第20个数(递归方式)
- jQuery写日历
- Word2010邮件合并(附带照片)
- 备份一下FFT帖子
- BP 神经网络
- 我是不是被“小三”了?
- where 条件并不是越多越好
- jQuery全选、取消全选、反选