python打开frame

Python014

python打开frame,第1张

例子:

代码如下:

#!/usr/bin/python

# -*- coding: GBK -*-

# simple.py

import wx

app = wx.App()

frame = wx.Frame(None)

frame.Show()

app.MainLoop()

例2,

代码如下:

#!/usr/bin/python

告诉程序 python 解释器的路径,只是在 linux 系统下有用,在 Windows 下写上这行代码不起作用,但是也没问题

# -*- coding: GBK -*-

告诉 python 系统字符编码,这样我们就可以在程序中使用中文汉字了,如果没有这一行就是乱码。Windows 下是 GBK,Linux 下是UTF-8

app = wx.App()

初始化应用程序

frame = wx.Frame(None)

frame.Show()

创建一个 Frame (就是窗体),并显示出来。

app.MainLoop()

应用程序进入消息循环

Frame 其实就是窗体,前面生成窗体时没有给他任何参数,只生成了一个默认的窗体,生成默认窗体的代码:

frame = wx.Frame(None)

其实 wx.Frame 可以传入很多参数,由此来控制生成窗体的样式和行为,现在来看看 Frame构造函数的原型:

__init__(self, Window parent, int id=-1, String title=EmptyString,

Point pos=DefaultPosition, Size size=DefaultSize,

long style=DEFAULT_FRAME_STYLE, String name=FrameNameStr)

参数1:parent

当前窗口的父窗口,如果当前窗口是top-level window的话,则parent=None,如果不是顶层窗口,则它的值为所属frame的名字

参数2:id

窗体编号。如果设置为-1,则系统自动给他分配一个编号。默认为-1.

参数3:title

窗体的标题栏,即Caption。默认为空。

参数4:pos

窗体的位置坐标。默认值为(-1,-1),则窗体的位置由系统决定。

参数5:size

窗体的大小。默认值为(-1,-1),则窗体的大小由系统决定。

参数6:style

窗体样式。默认值为 DEFAULT_FRAME_STYLE

默认样式 DEFAULT_FRAME_STYLE 是下面这些值的复合:

wx.MINIMIZE_BOX | wx.MAXIMIZE_BOX | wx.RESIZE_BORDER |

wx.SYSTEM_MENU | wx.CAPTION | wx.CLOSE_BOX | wx.CLIP_CHILDREN

它包括最小化按钮、最大化按钮、系统菜单、标题栏、关闭按钮、可变大小等等。您也可以根据自己的需求改变样式,具体请参照帮助。

参数7:name

窗体名称。

可以看到,7个参数中6个都有默认值,只有第一个参数 parent 需要设置一下,所以一个最简单的窗体就是:

Python代码 收藏代码

frame = wx.Frame(None)

窗体标题:

Python代码 收藏代码

frame = wx.Frame(None,title="Hello World")

位置和大小:

Python代码 收藏代码

frame = wx.Frame(None,title="世界你好",size=(300,150),pos=(200,200))

样式一:只有一个光秃秃的标题栏

Python代码 收藏代码

frame = wx.Frame(None,style=wx.CAPTION)

样式二:只有客户区,没有标题栏,也不能改变大小

Python代码 收藏代码

frame = wx.Frame(None,style=0)

样式三:只有一个关闭按钮,不能改变大小

代码如下:

frame = wx.Frame(None,style= wx.SYSTEM_MENU | wx.CAPTION | wx.CLOSE_BOX)

wx.DEFAULT_FRAME_STYLE :这是每个窗口的缺省风格,包含标题、可调节大小的边框,最大最小化按钮、关闭按钮和系统菜单。

wx.CAPTION :在框架上增加一个标题栏,它显示该框架的标题属性。

wx.CLOSE_BOX :指示系统在框架的标题栏上显示一个关闭框,使用系统默认的位置和样式。

Wx.FRAME_ON_TOP : 置顶窗口

w x.FRAME_SHAP ED :用这个样式创建的框架可以使用SetShape()方法去创建一个非矩形的窗口。

wx.FRAME_TOOL_WINDOW :通过给框架一个比正常更小的标题栏,使框架看起来像一个工具框窗口。在Windows下,使用这个样式创建的框架不会出现在显示所有打开窗口的任务栏上。

wx.MAXIMIZE_BOX :指示系统在框架的标题栏上显示一个最大化框,使用系统默认的位置和样式。

wx.MINIMIZE_BOX :指示系统在框架的标题栏上显示一个最小化框,使用系统默认的位置和样式。

wx.RESIZE_BORDER :给框架增加一个可以改变尺寸的边框。

wx.SIMPLE_BORDER :没有装饰的边框。不能工作在所有平台上。

wx.SYSTEM_MENU :增加系统菜单(带有关闭、移动、改变尺寸等功能)和关闭框到这个窗口。在系统菜单中的改变尺寸和关闭功能的有效性依赖于wx.MAXIMIZE_BOX, wx.MINIMIZE_BOX和wx.CLOSE_BOX样式是否被应用。

wx.FRAME_EX_META :如果时在 MacOS 中,这个属性用于是否显示“金属风格”

wx.FRAME_EX_CONTEXTHELP :是否有联机帮助按钮。

wx.FRAME_FLOAT_ON_PARENT :窗口是否显示在最上层,与 wxSTAY_ON_TOP 不同,它必须有一个父窗口。

Frame对象表示执行帧,表示程序运行时函数调用栈中的某一帧。

想要获得某个函数相关的栈帧,则必须在调用这个函数且这个函数尚未返回时获取。可以使用sys模块的_getframe()函数、或inspect模块的currentframe()函数获取当前栈帧。

f_back: 调用栈的前一帧。

f_code: 栈帧对应的code对象。

f_locals: 用在当前栈帧时与内建函数locals()相同,但你可以先获取其他帧然后使用这个属性获取那个帧的locals()。

f_globals: 用在当前栈帧时与内建函数globals()相同,但你可以先获取其他帧……

示例: 假设在下面代码的第四行打断点

函数被断点停止住时刻的frame信息如下

更多Python知识请关注Python视频教程栏目。

Class A(): #class关键字首字母要小写def GetEntryValues(): #类中的方法要添加self作为参数,或者使用staticmethod声明成静态函数InputValue = InputPath.get()print InputValuereturn InputValue def OpenInputValue(): #类中的方法要添加self作为参数print "sdsdsd"GetEntryValues() #调用类中方法的时候,如果是实例方法,需要使用self调用,如果是静态方法,需要类名调用 mainFrame = Tk()frame1 = Frame(mainFrame)frame1.pack()InputPath = Entry(frame1)InputPath.pack(side=LEFT)GoButton = Button(frame1, text='open', command=OpenInputValue) #OpenInputValue是类中的方法,需要使用实例或者类名调用GoButton.pack(side=LEFT)mainFrame.mainloop()