前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python GUI库wxPython官网Hello World示例的逐行解释

Python GUI库wxPython官网Hello World示例的逐行解释

作者头像
枇杷李子橙橘柚
发布2022-06-15 08:04:16
5350
发布2022-06-15 08:04:16
举报
文章被收录于专栏:没有擅长的YcY没有擅长的YcY

这篇文章是对wxPython官网第二个"Hello World"的demo代码的逐行解释,不过为方便初学者做了小部分改动,勉强算对wxPython的入门了解。

一、环境与工具

  • 本机:Windows10 64位
  • Python 3.5.2
  • wxPython 4.0.0b2
  • IDE:Pycharm Professional 2017.2.3

二、代码解释

代码语言:javascript
复制
# !/usr/bin/env python
# _*_ coding:utf-8 _*_

import wx
'''
frame(窗口):带标题和边框的最顶层窗体
panel(面板):容器类,提供空间放其他组件,包括其他panel
'''

class HelloFrame(wx.Frame):
    def __init__(self, *args, **kw):
        super(HelloFrame, self).__init__(*args, **kw)

        # 创建一个Panel实例
        pn1 = wx.Panel(self)
        
        # 在pn1上创建一个静态文本组件(StaticText)
        # +label表示要显示的文本内容
        # +pos表示文本显示位置
        st = wx.StaticText(pn1, label="A simple wxPython demo!", pos=(25, 25))
        
        # 设置文本内容字号并粗体显示
        font = st.GetFont()
        font.PointSize += 10
        font = font.Bold()
        st.SetFont(font)
        
        # 创建菜单栏
        self.makeMenuBar()
        # 创建状态栏
        self.CreateStatusBar()
        # 设置状态栏要显示的文本内容
        self.SetStatusText("Ready to update to Hello World v3.0!")

    def makeMenuBar(self):
        # 创建菜单对象fileMenu(菜单栏主选项1)
        fileMenu = wx.Menu()
        
        # 在fileMenu中添加子项createItem
        # +item表示子项
        # +helpString表示对子项的说明,当鼠标移动到子项上时,会在状态栏显示
        # \t...语法允许用户键盘操作触发子项
        createItem = fileMenu.Append(wx.ID_ANY, item=u"新建文件(N)...\tCtrl-H", helpString="创建一个新的文件")
        
        # 在各子项中添加起分隔作用的横线
        fileMenu.AppendSeparator()
        
        # 在fileMenu中添加子项exitItem
        exitItem = fileMenu.Append(wx.ID_EXIT, item=u"退出")

        # 创建菜单对象helpMenu(菜单栏主选项2)
        helpMenu = wx.Menu()
        # 在fileMenu中添加子项aboutItem
        aboutItem = helpMenu.Append(wx.ID_ABOUT, item=u"关于")

        # 创建菜单栏
        menuBar = wx.MenuBar()
        # 添加各个菜单栏主选项到菜单栏中
        # "&"后的首字母+"alt"键触发菜单选项。该首字母会以下划线着重显示,按住alt键即能看见。
        menuBar.Append(fileMenu, u"文件(&F)")
        menuBar.Append(helpMenu, u"帮助(&H)")
        # 添加菜单栏到窗口
        self.SetMenuBar(menuBar)

        # 将主菜单的所有子项绑定动作
        self.Bind(wx.EVT_MENU, self.OnCreate, source=createItem)
        self.Bind(wx.EVT_MENU, self.OnAbout, source=aboutItem)
        self.Bind(wx.EVT_MENU, self.OnExit, source=exitItem)

    def OnExit(self, event):
        # 关闭窗口
        self.Close(True)

    def OnCreate(self, event):
        wx.MessageBox(u"创建文件成功")

    def OnAbout(self, event):
        # MessageBox(message, caption=MessageBoxCaptionStr, style=OK|CENTRE, parent=None, x=DefaultCoord, y=DefaultCoord)
        # +调用message()方法将会弹出一个对话窗口
        # +message表示对话窗口显示的正文信息
        # +caption表示对话窗口的标题
        # +style表示对话窗口的按钮和图标样式
        wx.MessageBox("Hello World v2.0\r\nproducted by wxPython.",
                      "About",
                      wx.OK | wx.ICON_INFORMATION)


if __name__ == "__main__":
    app = wx.App()
    frame = HelloFrame(None, title="Hello World v2.0")
    frame.Show()
    app.MainLoop()
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-06-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

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