GUI编程1 wxPython

知识内容:

1.wxPython介绍

2.wxPython组件

3.wxPython布局

4.wxPython事件处理

5.wxPython实战

参考:https://www.yiibai.com/wxpython

一、wxPython介绍

1.wxPython是什么

官方解释:wxPython, the cross-platform GUI toolkit for the Python language. With wxPython software developers can create truly native user interfaces for their Python applications, that run with little or no modifications on Windows, Macs and Linux or other unix-like systems

翻译过来就是:wxPython是python中的跨平台的GUI工具,可以使用它给python程序快速搭建用户界面,可以运行到各种操作系统中

2.wxPython安装及基本使用

(1)安装

使用pip安装或在pycharm中的设置中直接安装

(2)基本使用

使用wxPython创建GUI程序的三个主要步骤如下:

  • 导入wxPython包
  • 建立框架类
  • 建立主程序

下面是以上三步骤的实例:

 1 # __author__ = "wyb"
 2 # date: 2018/4/29
 3 
 4 import wx           # 1.导入wxPython
 5 
 6 
 7 # 2.建立框架类
 8 class MyFrame(wx.Frame):
 9     def __init__(self, superior):
10         wx.Frame.__init__(self, parent=superior, title=u'my first from', size=(500, 500))
11         self.Bind(wx.EVT_SIZE, self.OnSize)
12         self.Bind(wx.EVT_MOVE, self.OnFrameMove)
13 
14         panel = wx.Panel(self, -1)
15         label1 = wx.StaticText(panel, -1, "FrameSize:")
16         label2 = wx.StaticText(panel, -1, "FramePos:")
17         label3 = wx.StaticText(parent=panel, label="MouseSize:")
18         self.sizeFrame = wx.TextCtrl(panel, -1, "", style=wx.TE_READONLY)
19         self.posFrame = wx.TextCtrl(panel, -1, "", style=wx.TE_READONLY)
20         self.posMouse = wx.TextCtrl(panel, -1, "", style=wx.TE_READONLY)
21         panel.Bind(wx.EVT_MOTION, self.OnMouseMove)
22         self.panel = panel
23 
24         sizer = wx.FlexGridSizer(3, 2, 5, 5)
25         sizer.Add(label1)
26         sizer.Add(self.sizeFrame)
27         sizer.Add(label2)
28         sizer.Add(self.posFrame)
29         sizer.Add(label3)
30         sizer.Add(self.posMouse)
31 
32         border = wx.BoxSizer()
33         border.Add(sizer, 0, wx.ALL, 15)
34         panel.SetSizerAndFit(border)
35         self.Fit()
36 
37     def OnSize(self, event):
38         size = event.GetSize()
39         self.sizeFrame.SetValue("%s, %s" % (size.width, size.height))
40         event.Skip()
41 
42     def OnFrameMove(self, event):
43         pos = event.GetPosition()
44         self.posFrame.SetValue("%s, %s" % (pos.x, pos.y))
45 
46     def OnMouseMove(self, event):
47         pos = event.GetPosition()
48         self.posMouse.SetValue("%s, %s" % (pos.x, pos.y))
49 
50 
51 # 3.建立主程序
52 if __name__ == '__main__':
53     app = wx.App()              # 创建应用程序对象
54     frame = MyFrame(None)       # 创建框架类对象
55     frame.Show(True)            # 展示框架
56     app.MainLoop()              # 开始事件循环

二、wxPython组件

1.Frame组件

2.按钮、静态文本框、文本框

Button、StaticText、TextCtrl

3.菜单

Menu

4.工具栏及状态栏

ToolBar、StatusBar

5.对话框

三、wxPython布局

1.wxPython布局简介

2.BoxSizer布局

3.GridSizer布局

4.布局实战

四、wxPython事件处理

五、wxPython实战

猜你喜欢

转载自www.cnblogs.com/wyb666/p/9003468.html