资讯专栏INFORMATION COLUMN

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

tunny / 1294人阅读

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

一、环境与工具

本机:Windows10 64位

Python 3.5.2

wxPython 4.0.0b2

IDE:Pycharm Professional 2017.2.3

二、代码解释
# !/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表示对子项的说明,当鼠标移动到子项上时,会在状态栏显示
        # 	...语法允许用户键盘操作触发子项
        createItem = fileMenu.Append(wx.ID_ANY, item=u"新建文件(N)...	Ctrl-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
producted 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()

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/41219.html

相关文章

  • Python的发展历程

    摘要:可以脱离语言环境独立运行就像一本英文书,我找一个翻译,给他点时间,把英文书翻译成中文的,这就是编译型语言解释型语言有良好的平台兼容性,在任何环境中都可以运行,前提是安装了解释器虚拟机。就像还是一本英文书,我看一句让他给我解释一句。 写在前面 随着大数据、人工智能这类词汇扑向我们,python这个早在1989就已经出现的语言终于高调回归,为了更好的学习python 我们先来了解下它的前世...

    lovXin 评论0 收藏0
  • python入门

    摘要:零预备知识字符编码计算机只能处理数字,所以为文本需要转化为数字才能被计算机处理,计算机里八个比特作为一个字节,这是数据的存储基础单位。 零、预备知识 0.1 字符编码计算机只能处理数字,所以为文本需要转化为数字才能被计算机处理,计算机里八个比特(bit)作为一个字节(byte),这是数据的存储基础单位。计算机为了处理文本,有以下三种编码方式: ASCII码:只有大小写英文字母,数字...

    xeblog 评论0 收藏0
  • PyCharm里面配置第三方的代码自动提示

    摘要:最近开始用编辑器来编写代码了,安装了库之后,发现没有代码提示,写起来很是不爽。。。几经周折之后发现还是得配置一下,因为自己也找了蛮久,所以记录一下,希望可以帮到打击其他第三方库的配置也是类似。 最近开始用 PyCharm 编辑器来编写 python 代码了,安装了 GUI 库 wxPython 之后,发现没有代码提示,写起来很是不爽。。。几经周折之后发现还是得配置一下,因为自己也找了蛮...

    Raaabbit 评论0 收藏0
  • 一步步搭建物联网系统——Python 代码如散文

    摘要:代码如散文作为一门计算机语言来说,会有下面的特点。而则通过这些扩展库将众多的开源函数库连接在一起,是名符其实的胶水语言。下面是我们将会在后面用到的代码在线查看一步步搭建物联网系统图灵电子书版一步步搭建物联网系统 Python 代码如散文 showImg(http://designiot.phodal.com/images/python.png); 作为一门计算机语言来说,Pytho...

    luckyyulin 评论0 收藏0
  • Python的门面担当 - Tkinter

    摘要:在这个窗口之上,可以添加各种输入框按钮文本等,可以增加对各种动作的处理。事件要与特定的控件相绑定,比如按钮有点击事件,输入框有按键事件,窗体有关闭事件等。 在大多数时候,我们都在黑黢黢的控制台里执行 Python 脚本。这看起来很酷很 GEEK。但对于部分场景下的用户来说,这样就不大美观和人性化了:我们需要交互更方便的图形化产品,也就是 GUI (图形用户界面,Graphical Us...

    Lucky_Boy 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<