wxPython 1 - 图形用户界面初认识

图形用户界面

图形用户界面,即 GUI(Graphical User Interface)。这种编程技术是非常重要的。Python 可以开发一些传统桌面应用,这一方面的工具包自然是有不少的。其中,除了内置的 Tkinter 和第三方库 PyQt 等库外, wxPython 因为其丰富的控件及完善的帮助文档,成为了 Python 的该领域中一个非常不错的选择。

安装 wxPython

wxPython 的安装非常方便,直接用 pip 安装即可。
pip install wxPython
如果安装过程中出现问题,可以参见 wxPython ,即官方提供的教程。

了解 wxPython

安装完 wxPython 工具包,就可以开始学习了。wxPython 作为一个 GUI 开发包,主要有一下四种内容:

  1. 窗口;
  2. 控件;
  3. 事件处理;
  4. 布局管理。

这四种不同的内容分别对应着不同的根类:

  1. wx.Window
  2. wx.Control
  3. wx.EvtHandler
  4. wx.Sizer

第一个 wxPython 程序

一般来说,为了使代码清晰并让窗口有较为完整的功能,一般都会通过定义 Frame 类的子类来实现。但该示例仅要展示一个窗口的实现的几个必备步骤,暂使用极为简单的代码创建出一个窗口,而不向其加入控件以及其他元素。代码如下。

# wxPython1.py

from wx import *

myApp = App()
myFrame = Frame(None, title="第一个wxPython程序", size=(200, 150), pos=(300, 225))

myFrame.Show()
myApp.MainLoop()

至此,第一个 wxPython 程序就大功告成了。如果一切正常的话,将会看到如下一个窗口:

在这里插入图片描述

很明显,这个程序仅有标题和灰色的背景。这个程序还是过于简单了。那么这个程序大致分为如下几步:

  1. 创建 myApp App 对象;
  2. 创建 myFrame Frame 对象;
  3. 显示 myFrame;
  4. myApp 进入主事件循环。

其中,只有 Frame 创建时的几个参数值得说明一下。
第一个参数 None ,是该窗口的父窗口 parent ,在有些情况下是可以设置的,不过一般来说,作为简单的程序,这个参数往往都是 None 。
第二个参数 title ,显然是设置窗口标题的。
第三、四个参数 size 和 pos ,分别设置了窗口的大小及位置。这两个参数都是元组类型,第一项为横向的参数,第二项为纵向的参数。需要注意的是,这里的位置 pos 在后续的应用中往往被省去,而用其他的方法代替。

程序完善

至此,根据上文的说明,写一个 GUI 程序的流程大致如此。利用同样的原理及参数,可以将以上程序改为一个完整的 wxPython 制作的小程序了。

# wxPython1.py

from wx import *

# myApp = App()
# myFrame = Frame(None, title="第一个wxPython程序", size=(600, 400), pos=(300, 225))
#
# myFrame.Show()
# myApp.MainLoop()


class MyFrame(Frame):

    def __init__(self):
        super(MyFrame, self).__init__(None, title="第一个wxPython程序", size=(600, 400), pos=(300, 225))


class MyApp(App):

    def OnInit(self):
        frame = MyFrame()
        frame.Show()

        return True

    def OnExit(self):
        print("程序结束")

        return 0


if __name__ == "__main__":
    app = MyApp()

    app.MainLoop()

这个程序流程与之前的基本一样,运行结果也没有不同,只在判断主模块这里,一般在 GUI 程序的主模块中总是习惯于加入这一段。当然,如果整个程序只包含一个文件时完全可以去掉这点。

具体对于完善后的程序还有一些出入,在下篇文章中将会讲解。这篇教程就到此为止了,再见!

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

__程序喵__

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值