图形用户界面
两个基本对象
'''
定义了一个子类App,定义了父类wx.App,子类中包含了一个初始化方法OnInit(),在主程序中创建类的实例,然后调用MainLoop()主循环方法。
'''
import wx #导入模块
class App(wx.App): #定义App类,继承wx.App父类
def OnInit(self): #定义一个初始化方法
frame = wx.Frame(parent=None,title = 'Hello wxpython') #创建窗口
frame.Show() #显示窗口
return True # 返回值
if __name__ == '__main__':
app = App() #创建App类的实例
app.MainLoop() #创建App类的MainLoop()主循坏方法
如果系统中只有一个窗口的话,可以不创建wx.App子类,直接使用wx.App,这个类提供一个最基本的OnInit()初始化方法
import wx
app = wx.App() #初始化wx.App类
frame = wx.Frame(parent=None,title = 'Hello wxpython') #定义一个顶级窗口
frame.Show() #显示窗口
app.MainLoop() #调用wx.App的MainLoop方法
在GUI中框架就是窗口,也是一个容器,用户可以将它在屏幕上任意移动,包含标题栏和菜单、等wxpython中,wx.Frame是所有框架的父类,当你创建wx.Frame的子类时,子类应该调用父类
的构造器wx.Frame.init()
wx.Frame.init()构造器语法格式如下:
wx.Frame(parent,id=-1,title="",pos=wx.DefaultPostion,size=wx.DefaultSize,style=wx.Defult_Frame_Style,name = "frame")
import wx
class MyFrame(wx.Frame):
def __init__(self,parent,id):
wx.Frame.__init__(self,parent= None,id= -1,title= "",pos=(),size=(),style="",name="")
if __name__ == "__main__":
app = wx.App()
frame = MyFrame(None,-1)
frame.Show()
app.MainLoop()
wx.StaticText(paerent,id,label,pos,size,style,name="")
panel = wx.Panel(self)
创建面板,并将panel作为父类,然后将组件放入窗体中。
通过wx.Font类设置字体
font = wx.Font(pointsize,family,style,weight,underline=False,faceName="",encoding="")
title.SetFont(font)
text = wx.TextCtrl(parent,id,value="",pos=(),size=(),style=0,validator="",name="")
参数说明:
the_button = wx.Button(parent,id,label,pos,size=wxDefaultSize,style=0,validator,name="button")
the_button是一个对象,实例化wx.Button类得到的
the_button.Bind(wx.EVT_BUTTON,OnClickSubmit)
参数说明:
wx.MessageBox(value) #value就是需要弹出的内容
sizer = wx.BoxSizer(wx.VERTIVAL)
wx.VERTIVAL
wx.HORIZONTAL
创建一个wx.BoxSizer对象,命名为sizer,带有一个决定是水平或者垂直的参数,默认是水平
然后使用Add()方法将控件加入sizer,使用面板的SetSizer()方法设定它的尺寸器
sizer.Add(control,proportion,flag,border)
参数说明: