wxPython

本文会介绍一些wxPython的安装操作和基本的使用,环境为Windows10。

wxPython是Python语言的一套优秀的GUI图形库。允许Python程序员很方便的创建完整的、功能键全的GUI用户界面。 wxPython是作为优秀的跨平台GUI库wxWidgets的Python封装和Python模块的方式提供给用户的。

首先登入wxPython的官方网站:https://www.wxpython.org 然后进入download页面,如下图所示


然后选择相应的版本,例如我自己安装的是32位Python2.7,就需要下载

 wxPython3.0-win32-py2732-bit Python 2.7

需要注意的是这里的多少位并不是操作系统的而是Python的,比如我的操作系统是64位的但是所安装的Python是32位的,也需要安装32位的wxPython,下载完整后直接点击exe文件安装即可,不需要做其他操作,如下图,然后一直按默认的设置装好就行:


接下来可以测试wxPython能否可用。

如下图,在Python中输入import wx ,没有报错即说明已经安装成功并且可以使用了!






### WxPython GUI 开发教程及使用示例 WxPython 是一种强大的 Python 图形用户界面 (GUI) 庢库,它允许开发者轻松构建跨平台的应用程序[^1]。通过结合 Python 和 wxWindows(C++ 编写的跨平台 GUI 库),WxPython 提供了一种高效的方式来设计功能全面的桌面应用[^2]。 以下是基于 WxPython 的一个简单示例,展示如何创建一个基本窗口并添加一些控件: #### 示例代码:创建简单的 WxPython 应用 ```python import wx class MyFrame(wx.Frame): def __init__(self, parent, title): super(MyFrame, self).__init__(parent, title=title, size=(300, 200)) panel = wx.Panel(self) # 添加标签和输入框 label_one = wx.StaticText(panel, label="Label One", pos=(10, 10)) input_one = wx.TextCtrl(panel, pos=(80, 10), size=(150, -1)) label_two = wx.StaticText(panel, label="Label Two", pos=(10, 40)) input_two = wx.TextCtrl(panel, pos=(80, 40), size=(150, -1)) label_three = wx.StaticText(panel, label="Label Three", pos=(10, 70)) input_three = wx.TextCtrl(panel, pos=(80, 70), size=(150, -1)) app = wx.App(False) frame = MyFrame(None, "Simple WxPython App") frame.Show() app.MainLoop() ``` 上述代码展示了如何利用 `wx.Frame` 创建一个窗口,并向其中添加静态文本 (`StaticText`) 和文本输入框 (`TextCtrl`) 控件[^3]。此例子还演示了手动定位控件的方法。 为了更灵活地管理布局,推荐使用 Sizer 来代替固定位置设置。下面是一个改进版的例子,采用 BoxSizer 实现自动调整大小的功能[^4]: #### 改进后的布局示例:使用 BoxSizers ```python import wx class MyPanel(wx.Panel): def __init__(self, parent): super().__init__(parent) main_sizer = wx.BoxSizer(wx.VERTICAL) grid_sizer = wx.FlexGridSizer(rows=3, cols=2, vgap=5, hgap=5) label_one = wx.StaticText(self, label="Label One:") input_one = wx.TextCtrl(self) grid_sizer.AddMany([(label_one), (input_one), ("Label Two:", 0, wx.ALIGN_RIGHT|wx.ALL), (wx.TextCtrl(self)), ("Label Three:", 0, wx.ALIGN_RIGHT|wx.ALL), (wx.TextCtrl(self))]) main_sizer.Add(grid_sizer, proportion=1, flag=wx.EXPAND|wx.ALL, border=10) self.SetSizer(main_sizer) class MyFrame(wx.Frame): def __init__(self): super().__init__(None, title='BoxSizer Example', size=(300, 200)) panel = MyPanel(self) self.Center() if __name__ == '__main__': app = wx.App(False) frame = MyFrame() frame.Show() app.MainLoop() ``` 这段代码引入了 `FlexGridSizer` 和 `BoxSizer`,使布局更加整洁且适应不同屏幕尺寸。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值