wxpython 学习笔记 第一天
wxpython 学习笔记 第一天
发布时间:2016-12-28 来源:查字典编辑
摘要:1,导入wxpython库importwx2,建立窗体构造类class名字(wx.Frame):def__init__(self,paren...

1,导入 wxpython 库

import wx

2,建立窗体构造类

class 名字(wx.Frame):

def __init__(self, parent, id):

wx.Frame.__init__(self, parent, id, '工具',size=(300, 200))

3,建立 面板 panel = wx.Panel(self)

设置面板背景

panel.SetBackgroundColour('White')

为状态显示栏,显示在面板最下面

wx.Frame.CreateStatusBar()

#这个为工具菜单,显示在窗体上面,工具菜单一般是有图标的菜单

wx.Frame.CreateToolBar()

#为菜单也是显示在窗体上面

wx.MenuBar()

#菜单栏上面的具体菜单

wx.Menu()

关于事件

wx.Frame.Bind

参数一,绑定的时间类型

参数二,触发的函数

参数三,确定那个窗体上的id触发

关于图片处理

#获取图片对象

image = wx.Image('yuanxiao.jpg', wx.BITMAP_TYPE_JPEG)

#取得位图流

temp = image.ConvertToBitmap()

关于具体菜单栏

Append方法添加菜单项

参数一,菜单项唯一id

参数二,菜单项名称

参数三,选择该菜单时的状态栏显示文字

AppendMenu方法为添加下一级菜单

参数一,菜单项唯一id

参数二,菜单项名称

参数三,具体的菜单项对象

关于窗体的构造函数

wx.Frame(parent, id=-1, title="", pos=wx.DefaultPosition,

size=wx.DefaultSize, style=wx.DEFAULT_FRAME_STYLE,

name="frame")

我们在别的窗口部件的构造器中将会看到类似的参数。参数的说明如下:

parent:框架的父窗口。对于顶级窗口,这个值是None。框架随其父窗口的销毁而销毁。取决于平台,框架可被限制只出现在父窗口的顶部。在多文档界面的情况下,子窗口被限制为只能在父窗口中移动和缩放。

id:关于新窗口的wxPython ID号。你可以明确地传递一个。或传递-1,这将导致wxPython自动生成一个新的ID。

title:窗口的标题。

pos:一个wx.Point对象,它指定这个新窗口的左上角在屏幕中的位置。在图形用户界面程序中,通常(0,0)是显示器的左上角。这个默认的(-1,-1)将让系统决定窗口的位置。

size:一个wx.Size对象,它指定这个窗口的初始尺寸。这个默认的(-1,-1)将让系统决定窗口的初始尺寸。

style:指定窗口的类型的常量。你可以使用或运算来组合它们。

name:框架的内在的名字。以后你可以使用它来寻找这个窗口。

记住,这些参数将被传递给父类的构造器方法:wx.Frame.__init__()。

创建wx.Frame子类的方法如下所示:

class MyFrame(wx.Frame):

def __init__(self):

wx.Frame.__init__(self, None, -1, "My Friendly Window",

(100, 100), (100, 100))

关于框架的一些属性

frame.Show(False) # 使框架不可见.

frame.Show(True) # True是默认值,使框架可见.

frame.Hide() # 等同于frame.Show(False)

关闭窗体

wx.Exit()

实例程序

#设置python使用的编码

#coding=utf-8

#加载wx库

import wx

#框架类

class ToolbarFrame(wx.Frame):

def __init__(self, parent, id):#构造函数

#构造框架

wx.Frame.__init__(self, parent, id, '工具',size=(300, 200))

#填充面板

panel = wx.Panel(self)

#设置面板背景颜色

panel.SetBackgroundColour('White')

#建立状态栏

statusBar = self.CreateStatusBar()

#建立工具栏

toolbar = self.CreateToolBar()

#取得工具栏图标对象

image = wx.Image('yuanxiao.jpg', wx.BITMAP_TYPE_JPEG)

#取得图标位图流

temp = image.ConvertToBitmap()

#建立工具栏

toolbar.AddSimpleTool(wx.NewId(),temp, "New", "Long help for 'New'")

#设置工具栏位置

toolbar.Realize()

#建立菜单栏

menuBar = wx.MenuBar()

#建立菜单项

menu1 = wx.Menu()

#添加下级菜单项

menu1.Append(wx.NewId(), "C&ut", "Copy in status bar")

#设置菜单项里的分割线

menu1.AppendSeparator()

sm = wx.Menu()

sm.Append(-1,'测试1');

sm.Append(-1,'测试2');

#把二级菜单项添加到一级菜单

menu1.AppendMenu(-1,'下级',sm);

#把菜单项添加单菜单栏里

menuBar.Append(menu1, "文件(&F)")

menu2 = wx.Menu()

nid = wx.NewId()

menu2.Append(nid, "&Copy", "Copy in status bar")

#事件绑定

self.Bind(wx.EVT_MENU, self.onQuit, id=nid)

menu2.Append(wx.NewId(), "C&ut", "")

menu2.Append(wx.NewId(), "&Paste", "")

menu2.AppendSeparator()

menu2.Append(wx.NewId(), "&Options...", "Display Options")

menuBar.Append(menu2, "&Edit")

#设置菜单栏展示

self.SetMenuBar(menuBar)

#触发的事件

def onQuit(self, event):

#弹出框

dlg = wx.MessageDialog(None, 'Is this the coolest thing ever!','MessageDialog', wx.YES_NO | wx.ICON_QUESTION)

result = dlg.ShowModal()

dlg.Destroy()

#执行

if __name__ == '__main__':

app = wx.PySimpleApp()

frame = ToolbarFrame(parent=None, id=-1)

frame.Show()

app.MainLoop()

开源项目介绍

http://onlypython.group.javaeye.com/group/blog/309552

讲解开发

http://rainytooo.javaeye.com/blog/150228

wxPython in Action 中文文档

http://www.pythontik.com/blog/article.asp?id=184

作者 叁石 sanshi0815

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新python学习
热门python学习
脚本专栏子分类