Python wxpython

发布时间 2023-10-08 11:52:42作者: 园友787722

wxpython


wx.frame(perent, id, title, pos, size, style, name) —— 程序窗口控件

perent —— 该控件的父类,一般首个frame没有父类填None。

id —— 常用于Event事件,便于事件获取id值

title —— 程序标题

pos —— 程序出现的位置pos=(x ,y)

size —— 整个框架的尺寸size=(x, y)

style —— 框架的风格

name —— 框架的名字

用法:

frame = wx.frame(None, id=1, title='你好,世界', size=(x, y)

 


 

wx.app() —— 程序主函数

配合wx.MainLoop()运行

用法:

app = wx.app()

app.MainLoop()


wx.button(perent, id, label, pos, size, validator, name) —— 普通按钮控件

perent —— 控件的父类

id —— id用于Event事件

label —— 按钮显示的文本

pos —— 按钮在父类上的位置

size —— 按钮的尺寸

validator —— 未知

name —— 未知

用法:

button = wx.button(frame, id=1, pos=(20, 20), size=(20,30))

 


 wx.Panel(perent, id, pos, size, style, name) —— 面板控件

perent —— 控件父类

id —— 控件id

pos —— 位置

size —— 尺寸

style —— 风格

name —— 名字


 

wx.Radiob=Button() —— 单选按钮

perent —— 控件的父类

id —— id用于Event事件

label —— 按钮显示的文本

pos —— 按钮在父类上的位置

size —— 按钮的尺寸

validator —— 未知

name —— 未知

style —— 风格 RB_GROUP为一组的开始,只有遇到下一个RB_GROUP标志着一组的结束,不包括当前标志按钮在内。同组的按钮具有互斥性。例如:

kobe = wx.RadioButton(frame, label='kobe', style=RB_GROUP)

xiaobudin = wx.RadioButton(frame, label='xiaobudin')

这里表示小布丁和科比是一组,选择的时候只能选择一个!


 

wx.CheakBox(frame, id, label, pos, size, validator, name, style) —— 多选按钮

perent —— 控件的父类

id —— id用于Event事件

label —— 按钮显示的文本

pos —— 按钮在父类上的位置

size —— 按钮的尺寸

validator —— 未知

name —— 未知

style —— 风格

Check = wx.CheckBox(Panel, label='Java')
Check1 = wx.CheckBox(Panel, label='Python')

 


 

wx.StaticText(Perent, id, label, pos, size, style, validator, name, style) —— 静态文本控件

statictext = wx.StaticText(Panel, label='你好,世界')    #实例化对象
statictext.SetLabelText('hello world')    #修改显示内容

 


 

wx.TextCtrl(Perent, id, value, pos, size, validator, name, style) —— 动态文本输入框

value —— 控件的初始内容

style —— 风格,该控件风格有包内自带的普通文本框,密码文本框(wx.TE_PASSWORD),多行文本框等。

text = wx.TextCtrl(frame)
text.SetValue('设置控件的初始内容')
print(text.GetValue())    #获取文本框当前的值

 


 

wx.Bind(event, handle, source, id, id2) —— 将事件绑定到控件

event —— 事件的类型例如wx.EVT_BUTTON, wx.EVT_CHEAKBOX, wx.EVT_RADIOBUTTON

handle —— 事件的处理者

source —— 事件源

id, id2 —— 组合使用和控件的id相关id=1,id2=5表示能够触发事件的id范围 [1,5] 闭区间

 

class Myframe(wx.Frame):
    def __init__(self):
        super().__init__(self)
        Button = wx.Button(self, id= 11, label='按钮')
        self.Bind(wx.EVT_BUTTON, self.OnClick, id=10, id2=20)
        self.Bind(wx.EVT_BUTTON, self.OnClick, Button)

    def OnClick(self, event):    #事件执行函数名自行设置,Bind会传两个参数,所有需要self,event两个形参
        event_id = event.GetId()    #获取触发事件id
        event_Object = event.GetEventObject()    #获取触发事件对象
        print(event_id)
        print(event_Object)

 

 


 

wx.BoxSizer() —— 盒子布局管理器

        self.BOXSIEZ0 = wx.BoxSizer(wx.HORIZONTAL)  # 布局管理器 水平
        self.BOXSIEZ1 = wx.BoxSizer(wx.VERTICAL)  # 垂直
        形参表示的是该管理器的布局方式
        self.Button = wx.Button(Panel, label='按钮')
        
        wx.BoxSizer.Add(控件, proportion, flag, border)
        wx.BoxSizer.Add(BoxSize, proportion, flag, border)
        # 这是将对象添加到盒子管理器中,第一个参数是控件或者另一个盒子管理器,proportion权重,表示在该布局管理器中的自己四周的范围,填int参数。flag是标签,表示在该盒子管理器中排列的方式,border