前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何使用wxPython构建一个GUI应用程序

如何使用wxPython构建一个GUI应用程序

作者头像
TalkPython
发布2019-05-24 16:53:32
2.6K1
发布2019-05-24 16:53:32
举报
文章被收录于专栏:TalkPython

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

一、安装wxPython

首先需要安装wxpython库,按照下面的方法,开始安装:

代码语言:javascript
复制
pip install wxpython

安装完成以后,就可以使用wxpython编写可视化窗口的应用了。妈妈再也不担心我不会前端开发了。

二、Hello World

废话不多说,先上实战代码,你可以运行起来,体验一下。

代码语言:javascript
复制
import wx

class MyFrame(wx.Frame): 
    class MyFramea(wx.Frame):
        def __init__(self):
            super().__init__(parent=None, title='Hello World')
            self.Show()

if __name__ == '__main__':
    app = wx.App()
    frame = MyFrame()
    app.MainLoop()

wxPython一些通用的组件:

  • Main window
  • Menu
  • Toolbar
  • Buttons
  • Text Entry
  • Labels

wxPython还有很多小的组件,你还可以自定义组件。

三、一个简单的实战案例

在可视化应用程序中,输入框、按钮可谓是,使用率相当高的控件了。接下在上面程序的基础上,添加一个输入框和两个按钮,还有按钮的点击事件。

代码语言:javascript
复制
import  wx

class MyFramea(wx.Frame):

    def __init__(self):
        super().__init__(parent=None, title='Hello World')

        # 创建面板
        panel = wx.Panel(self)

        # 声明一个垂直尺寸的容器
        my_sizer = wx.BoxSizer(wx.VERTICAL)

        # 在Panel上添加输入框
        self.text_ctrl = wx.TextCtrl(panel)

        # 为该容器添输入框加组件,从左往右,从上到下,边框为5
        my_sizer.Add(self.text_ctrl,0,wx.ALL | wx.EXPAND,5)

        # 在Panel上添加Button按钮
        my_btn = wx.Button(panel, label='点我', pos=(5, 55))

        # 为按钮绑定点击事件
        my_btn.Bind(wx.EVT_BUTTON, self.on_press)

        # 在Panel上添加Button按钮
        close_btn = wx.Button(panel, label='关闭', pos=(5, 55))

        # 为按钮绑定点击事件
        close_btn.Bind(wx.EVT_BUTTON, self.on_close)


        # 为该容器添按钮组件
        my_sizer.Add(my_btn, 0, wx.ALL | wx.CENTER, 5)
        my_sizer.Add(close_btn,0,wx.ALL | wx.CENTER, 5)

        # 设置主尺寸
        panel.SetSizer(my_sizer)

        self.Show()

    # 为按钮添加一个事件
    def on_press(self, event):
        value = self.text_ctrl.GetValue()
        if not value:
            print("你没有输入内容")
        else:
            print(f'你输入的内容是: "{value}"')

    # 为按钮增加一个关闭按钮事件
    def on_close(self, event):
        dlg = wx.MessageDialog(None, u"我是一个消息对话框", u"wxPython标题信息", wx.YES_NO | wx.ICON_QUESTION)
        if dlg.ShowModal() == wx.ID_YES:
            self.Close(True)
        dlg.Destroy()


if __name__ == '__main__':
    app = wx.App()
    frame = MyFramea()
    app.MainLoop()

运行这段程序,将会看到下面这个界面:

你可以在输入框,输入一些内容,点击’点我’按钮试一试。然后再点击‘关闭’按钮。看看会发生什么情况?

最终结果应该是下图这样的:

如果你觉得内容还不错,分享给更多朋友,一起提升编程技能。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-03-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 TalkPython 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 三、一个简单的实战案例
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档