摘要:
创建窗口中部件时显示指定位置和大小对于稍复杂一点的界面来说是非常痛苦的,所以本节看一下wxPython中布局管理器sizer的用法,同样,先看一个实例:代码:#!/usr/bin/env python# -*- coding: utf-8 -*-''' Function:绘图 Input:NONE Output: NONE author: socrates blog:http://www.cnblogs.com/dyx1024/ date:2012-07-15''' import wximport wx.lib.buttonsimport cPi 阅读全文
摘要:
本节看一下颜色选择对话框的使用,比较简单,先看实例,再讲解知识点:代码: def OnOtherColor(self, event): ''' 使用颜色对话框 ''' dlg = wx.ColourDialog(self) dlg.GetColourData().SetChooseFull(True) #创建颜色对象数据 if dlg.ShowModal() == wx.ID_OK: self.paint.SetColor(dlg.GetColourData().GetColou... 阅读全文
摘要:
本节看一下文件对话框的使用,先看实例,再介绍具体知识点。代码:#!/usr/bin/env python# -*- coding: utf-8 -*-''' Function:绘图 Input:NONE Output: NONE author: socrates blog:http://www.cnblogs.com/dyx1024/ date:2012-07-14''' import wximport cPickleimport osclass PaintWindow(wx.Window): def __init__(self, paren.. 阅读全文
摘要:
本节看看菜单的创建及使用,直接看代码。#!/usr/bin/env python# -*- coding: utf-8 -*-''' Function:绘图 Input:NONE Output: NONE author: socrates blog:http://www.cnblogs.com/dyx1024/ date:2012-07-13''' import wxclass PaintWindow(wx.Window): def __init__(self, parent, id): wx.Window.__ini... 阅读全文
摘要:
本节看一下wxPython中状态栏的编程,先看个例子,此程序中其他部分代码略,如需要请看上一篇文章。class PaintFrame(wx.Frame): def __init__(self, parent): wx.Frame.__init__(self, parent, -1, "Panit Frame", size = (800, 600)) self.paint = PaintWindow(self, -1) #状态栏 self.paint.Bind(wx.EVT_MOTION, self.OnPaintMo... 阅读全文
摘要:
一个绘图的例子:#!/usr/bin/env python# -*- coding: utf-8 -*-''' Function:绘图 Input:NONE Output: NONE author: socrates blog:http://www.cnblogs.com/dyx1024/ date:2012-07-11''' import wxclass PaintWindow(wx.Window): def __init__(self, parent, id): wx.Window.__init__(self, pa... 阅读全文
摘要:
事件处理流程,如下:wxPython首先在触发对象中查找匹配事件类型的被绑定的处理器函数,如果找到,刚相应方法被执行。如果没找到,wxPython将检查该事件是否传送到了上一级的容器,如果是,父窗口被检查,如此一级级向上查找,直到找到一个处理函数或到达顶层窗口。看一个触发多个事件的实例:#!/usr/bin/env python# -*- coding: utf-8 -*-''' Function:常用对话框实例 Input:NONE Output: NONE author: socrates blog:http://www.cnblogs.com/dyx1024... 阅读全文
摘要:
事件处理是wxPython程序工作的基本机制,先看几个术语:事件(event):应该程序期间发生的事情,要求有一个响应。事件对象(event object):代表具体一个事件,包括事件的数据属性,为wx.Event或其子类的实例,如wx.CommandEvent/wx.MouseEvent。事件类型(event type):wxPython分配给每个事件对象的一个整数ID。事件驱动模型:wx.Event的子类:wx.CloseEvent:框架关闭时触发,事件类型有普通框架关闭和系统关闭事件。wx.CommandEvent:与窗口部件的简单的交互都会触发此事件,如按钮单击,菜单项选择等。wx.K 阅读全文
摘要:
列表选择框就是让用户从提供的列表中选择目标项,原型如下:wxSingleChoiceDialog(wxWindow* parent, const wxString& message, const wxString& caption, int n, const wxString* choices, void** clientData = NULL, long style = wxCHOICEDLG_STYLE, const wxPoint& pos = wxDefaultPosition)支持的方法如下:wxSingleChoiceDialog::GetSelection 阅读全文
摘要:
本节看看单行文本对话框的使用,先看函数原型:wxTextEntryDialog(wxWindow* parent, const wxString& message, const wxString& caption = "Please enter text", const wxString& defaultValue = "", long style = wxOK | wxCANCEL | wxCENTRE, const wxPoint& pos = wxDefaultPosition)其支持的方法有:wxTextEntry 阅读全文
摘要:
消息对话框即我们平时说的Messagebox,看看它的原型,下面是wxWidgets中的原型定义,C++风格,与python风格的区别就是wx前缀与后面名称直接相连,例如wxMessageDialog,在wxpython中使用时就是wx.MessageDialogwxMessageDialog(wxWindow* parent, const wxString& message, const wxString& caption = "Message box", long style = wxOK | wxCANCEL, const wxPoint& p 阅读全文
摘要:
与绘制按钮一样,很简单,直接看代码:#!/usr/bin/env python# -*- coding: utf-8 -*-import wximport wx.py.imagesclass ToolbarFrame(wx.Frame): def __init__(self, parent, id): wx.Frame.__init__(self, parent, id, 'Toolbars', size = (300, 200)) panel = wx.Panel(self) panel.SetBackgrou... 阅读全文
摘要:
Panel是窗口的容器,通常其大小与Frame一样,在其上放置各种控件,这样可将窗口内容与工具栏及状态栏区分开,能过TAB键可遍历Panel中的元素,直接看个例子:#!/usr/bin/env python# -*- coding: utf-8 -*-import wxclass MyFrame(wx.Frame): def __init__(self, parent, id): wx.Frame.__init__(self, parent, id, u'测试面板Panel', size = (600, 300)) #创建面板 ... 阅读全文
摘要:
Frame即为框架,可以直接理解为一个窗口。要创建一个Frame的子类,需要调用Frame类的构造函数,原型如下:wx.Frame(parent, id=-1, title=””, pos=wx.DefaultPosition,size=wx.DefaultSize, style=wx.DEFAULT_FRAME_STYLE,name=”frame”)各参数含义: parent:顶级窗口直接使用None。 id:标识,有三种赋值方式:1、自己指定一个正数,但确保同一窗体中不能重复;2、取值-1或wx.ID_ANY,表示由系统自动分配,可以通过frame.GetId()来获取此值;3、使用wx. 阅读全文
摘要:
一、正常关闭 wx.App子类的OnExit()方法在最后一个窗口被关闭且在wxPython的内在清理过程之前被调用,所以,可以在OnExit()方法中清理任何创建的非wxPython资源。如果调用了wx.Exit()关闭wxPython程序,OnExit()方法仍会被调用。 如果想在所有窗口关闭后wxPython程序仍可继续,可使用wx.App的SetExitOnFrameDelete(flag)方法,如果flag设置为False,最后的窗口关闭后wxPython仍可运行。此时wx.App继续存活,事件循环也继续正常,此时要结束,调用wx.Exit()即可。二、非正常关闭 两种方法:调用w. 阅读全文
摘要:
通过一个实例来看看如何控制wxPython的输出,并观察各必要对象的创建次序及生命周期。#!/usr/bin/env python# -*- coding: utf-8 -*-''' Function:简单的wxPython程序 Input:NONE Output: NONE author: socrates blog:http://www.cnblogs.com/dyx1024/ date:2012-07-01''' import sys import wxclass MyFrame(wx.Frame): ''' 创建一 阅读全文
摘要:
一、两个必须对象 wxPython程序由两个必要的对象组成,即应用程序对象APP和顶级窗口对象Frame,其基本功能如下: 应用程序对象APP管理主事件循环MainLoop()。 顶级窗口对象Frame管理数据,控制并呈现给用户。 下图表示两个基础对象和程序其他部分的关系: wx.App子类创建步骤: 定义这个子类。 给子类添加OnInit()方法。 主程序中创建此子类的一个实例。 此实例调用MainLoop() 注:OnInit()方法无参数,返回值为BOOL,所以此部分可做一些关键数据初始化的动作,如失败,返回False,程序直接退出。通常会在此方法中创建一个Frame对象,并调用Fram 阅读全文
摘要:
一个wxPython程序必须有一个Frame类和App类对象,这两个类可以自己编写,对于简单的应用,可以直接使用wx.PySimpleApp,从而避免了自己编写APP类。下面是上一篇笔记中小程序的另一种写法:#!/usr/bin/env python# -*- coding: utf-8 -*-''' Function:简单的wxPython程序 Input:NONE Output: NONE author: socrates blog:http://www.cnblogs.com/dyx1024/ date:2012-06-30''' ... 阅读全文
摘要:
最近自学wxPython,参考书籍为《wxPython in Action》,所以最近的一系列wxPython相关文章均为读书笔记。 先来个简单的wxPython程序热热身。代码:#!/usr/bin/env python# -*- coding: utf-8 -*-''' Function:简单的wxPython程序 Input:NONE Output: NONE author: socrates blog:http://www.cnblogs.com/dyx1024/ date:2012-06-30''' import wxclas... 阅读全文
摘要:
以Windows下为例,可以通过以下几种方式执行一个python脚本文件: 1、双击脚本文件,如a.py; 2、写一个bat文件,文件中通过python -i a.py 来调用;3、在python命令行下,通过execfile(E:\\a.py)调用; 阅读全文