整体流程

导入wx模块

定义应用程序类的一个对象

创建一个顶层窗口的wx.Frame类的对象==》给出窗体标题和尺寸参数等

定义Panel对象====================》管理布局

添加一个静态文本对象==============》各种框体

show方法激活框架、

运行app

对应语法:

导入wx模块 import wx

定义应用程序类的一个对象 wx.App()

创建一个顶层窗口的wx.Frame类的对象==》window=wx,Frame(父窗口,title=‘...’,size=(宽,高))

定义Panel对象====================》panel=wx.Panel(window)

添加一个静态文本对象===》label=wx.StaticText(panel,label='某某',pos=(X,Y)pos 是坐标位置

show方法激活框架================》window.Show(Ture) 展示的是定义的window窗口

运行app                ================》app.MainLoop

层次关系:先创建了一个app对象,然后创建了一个窗口,命名为window,panel容器是在window下,lable又在panel下,层级包含关系。一切做好之后,Show展示window窗口,但是展示不会运行,因为window在app下,所以运行app.MainLoop就运行整个程序

例子:创建一个简单的窗口

# 导入wx模块
import wx
# 定义一个应用程序类对象
app=wx.App()
# 创建一个顶级窗口
window=wx.Frame(None,title="约车app雏形",size=(300,500))
# 定义panel对象
panel=wx.Panel(window)
# 添加一个静态文本对象
lable=wx.StaticText(panel,label='我是静态文本标签',pos=(100,200))
# 激活框架窗口
window.Show(True)
# 运行app
app.MainLoop()

利用BoxSizer页面布局:

1.定义一个BoxSizer                                

2.把需要参与布局的控件依次加入BoxSizer中

3.给每个控件设置布局属性

4.执行布局设置


1.BoxSizer1=wx.BoxSizer(wx.HORIZONTAL)水平排列,或者BoxSizer1=wx.BoxSizer(wx.VERTICAL) 水平排列


2.BoxSizer.Add(控件名,proportion,flag,border)

一段实例,太晚了不写文字了,贴点代码自己看

import wx

# 怎么绑定按钮事件和按钮函数
# 先定义一个事件函数,获取num1框的值用number1接收,然后把result框放入num1取出的值number1
# 一定是event,表示这是一个事件函数,而非其他函数
def show_value(event):
    number1 = num1.GetValue()
    result.SetValue(number1)
# 将按钮事件和事件函数进行绑定,点击时就调用事件函数
# button.Bind(wx.EVT_BUTTON,show_value())


# 定义一个应用程序
app=wx.App()
# 定义一个窗体
window=wx.Frame(None,title='爷要约车',size=(500,400))
# 定义一个容器
panel=wx.Panel(window)
# 定义一个框体
num1=wx.TextCtrl(panel)
operator=wx.TextCtrl(panel)
num2=wx.TextCtrl(panel)
result=wx.TextCtrl(panel)
# 定义一个按钮
button=wx.Button(panel,label='ok')
# 定义BoxSizer
BoxSizer1=wx.BoxSizer(wx.HORIZONTAL)
# 依次加入控件到BoxSizer中,proportion是比例关系,默认0就是原来的大小,1会默认充满.
# flag标签控制间隔
BoxSizer1.Add(num1,proportion=1,border=5,flag=wx.LEFT|wx.RIGHT)
BoxSizer1.Add(operator,proportion=0,border=5,flag=wx.LEFT|wx.RIGHT)
BoxSizer1.Add(num2,proportion=1,border=5,flag=wx.LEFT|wx.RIGHT)

# 再定义一个BoxSizer,flag=wx.EXPAND表示平铺,注意下面也对BoxSizer1做了重新设置
BoxSizer2=wx.BoxSizer(wx.VERTICAL)
BoxSizer2.Add(BoxSizer1,flag=wx.EXPAND|wx.Top,border=8)
BoxSizer2.Add(button,flag=wx.EXPAND|wx.LEFT|wx.RIGHT,border=8)
BoxSizer2.Add(result,proportion=1,flag=wx.EXPAND|wx.LEFT|wx.RIGHT|wx.Top,border=8)
# 执行布局设置
panel.SetSizer(BoxSizer2)
# 进行按钮事件绑定,最顶上已经定义好了按钮事件
button.Bind(wx.EVT_BUTTON,show_value)

# 激活显示窗口
window.Show(True)
# 运行程序
app.MainLoop()

# 如何做事件触发:先写一个事件触发的函数,然后绑定事件和控件