wxpython使用简介_wxPython 教程(一) 简介[通俗易懂]

wxpython使用简介_wxPython 教程(一) 简介[通俗易懂]应用(application)是用来执行特定任务或一组任务的电脑程序。网页浏览器、媒体播放器、文字处理程序都是典型的应用样例。不同应用可以划分至四种不同的应用领域:在线商店应用、wiki、微博等都是受欢迎的网页(web)应用,我们通过网页浏览器可以访问它们。桌面(Desktop)应用的例子则包括Maya、Opera、OpenOffice或Winamp。企业级(Enterprise)应用则指复…

大家好,又见面了,我是你们的朋友全栈君。

应用(application)是用来执行特定任务或一组任务的电脑程序。网页浏览器、媒体播放器、文字处理程序都是典型的应用样例。不同应用可以划分至四种不同的应用领域:

1ac6a3ba59ff162ec7a5408bf86d0223.png

在线商店应用、wiki、微博等都是受欢迎的网页(web)应用,我们通过网页浏览器可以访问它们。桌面(Desktop)应用的例子则包括 Maya、Opera、Open Office或 Winamp。企业级(Enterprise)应用则指复杂的大型应用。移动(Portables)应用包括所有为手机等移动设备开发的应用。

编程语言

目前有很多种非常流行的编程语言,以下列表来自于TIOBE Programming Community Index (2014,10)。

排名

语言

投票率

1

C

17.6%

2

Java

13.5%

3

Objective-C

10.1%

4

C++

4.8%

5

C#

4.7%

6

Basic

3.5%

7

PHP

2.9%

8

Python

2.3%

9

Perl

2.1%

10

Transact-SQL

2.1%

可见python属于最热门语言之一。

Python

7d1feedbed0426d463e85410ec633220.png

Python 是一种脚本语言,受ABC 和Haskell编程语言的启发,最初由_Guido van Rossum_开发,发布于1991年。Python是一种高级、通用、跨平台的解释性语言,有人也叫它“动态语言”。Python非常简约易学,而且不常用分号或括号,它使用缩进来控制代码结构。如今有来自世界各地的大批志愿者维护Python项目。

Python程序员在编写图形用户界面时,至少有三种选择:PyGTK、wxPython以及PyQt。本教程主要讲解wxPython的使用。

wxPython

wxPython是一个创建桌面GUI应用的跨平台工具包(toolkit),它的主要开发者是_Robin Dunn_。使用wxPython,开发者可以在Windows、Mac和多种Unix系统上开发应用程序。wxPython是对成熟的跨平台C++ 库wxWidgets的封装,主要包括以下5个基本模块:

41307532a3e71b729a2f6b1711012e5d.png

Controls模块提供图形应用中通用的部件(widgets),比如按钮(Button)、工具栏(Toolbar)或者记事本(Notebook)。在Windows系统中,widgets被称为controls。

Core模块包含了开发中用到的各种类(classes)。这些类包括Object类(所有类的父类)、Sizers类(对部件进行布局的类)、Events类(事件)、基本的几何结构类(如点Point和矩形Rectangle)。

GDI **(Graphics Device Interface,图形设备接口)是在部件上作图的类的集合,包括操作字体(Fonts)、颜色(Colours)、笔刷(Brushes)、笔(Pen)和图片(Images)等类。

**Misc包括多种其他类,比如日志(logging)、应用配置、系统设置等。

_Windows_模块包含多种窗口类,比如面板(Panel)、对话框(Dialog)、框架(Frame)或者可滚动窗口(Scrolled Window)。

wxPython API

wxPython API是一系列方法和对象的集合。技术上来说,wxPython是对C ++图形界面编程API wxWidgets的封装,所以它不是native的API,即不是直接由python编写的。

在wxPython中,我们有很多的widgets,他们可以被分为以下几组。

BASE WIDGETS

Base Widgets,这些widgets提供最基本的功能,被称作祖先类,一般不直接使用。

3274812cd110672d5dcd657f36575f9f.png

TOP LEVEL WIDGETS

Top level Widgets,即顶级widgets,这些widgets彼此独立存在。

4fee2a7f5065f46ec814d0d57e164923.png

CONTAINERS

Containers即容器,一般包含其他widgets。

a9d7df4f72f539ecfb881693db708b24.png

DYNAMIC WIDGETS

Dynamic widgets,即动态部件,这些部件可以直接被用户操作,如下图所示。

f0e8f35b0583acc039e5e03468c70f2d.png

STATIC WIDGETS

Static Widgets,即静态部件,用户无法对它们进行编辑。

baf0abee2654e848556263afae3f180f.png

OTHER WIDGETS

Other Widgets,即其他部件,包括工具栏、状态栏以及菜单栏。

829ebfb1761d5e96d89b5ce92a862e5c.png

继承

wxPython中部件之间存在继承的关系,对于面向对象编程来说,继承是非常重要的一部分。widgets构建出层级关系,widgets可以从其他widgets继承功能特性。已存在的类叫做基类、父类或祖先,继承的类叫做派生类、子类或者后代。这些术语借鉴自生物学概念。

ef34a23ada074ac0f0f232455ee86775.png

比如我们在应用中使用了一个button widget,这个button widget继承自4个不同的基类。最近的类是wx.Control类。controls是指可以放在其他容器widgets上的widgets。并非所有的widgets都是controls,比如wx.Dialog就不是。

button widget是一种窗口部件,所有出现在屏幕上的部件都是小窗口,所以它们都继承自wx.Window类。

每个window对象都可以对事件(Events)作出响应,button widget也不例外。点击按钮时,会触发wx.EVT_COMMAND_BUTTON_CLICKED事件。Button widget通过wx.Window继承了wx.EvtHandler类。每一个响应事件的widget都必须继承自wx.EvtHandler类。

最后,所有的类都继承自wx.Object类,它是wxPython中所有类的父类。

以上,即本节内容:wxPython简介。你无须完全看懂以上,相关内容我们会在后续章节中详细介绍。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/143497.html原文链接:https://javaforall.net

(0)
上一篇 2022年5月21日 下午3:00
下一篇 2022年5月21日 下午3:20


相关推荐

  • 网页制作:一个简易美观的登录界面

    网页制作:一个简易美观的登录界面这次来总结一下公司的Task1实现一个登录界面。登录界面其实在大三的时候就有做过,但是当时做的界面超级low,主要区别在于有无css,由于公司的设计要求,对于该界面的很多细节处理实在不容易。所以,还是想要写点东西记录一下。先截个图,展示一下效果吧:然后我们看一下代码:在我们做一个页面之前,要先想好他的一个整体布局,也就是我们这里面的login.html主页面,大致结构如…

    2022年6月7日
    42
  • js promise的用法

    js promise的用法nbsp 在理解 promise 的使用之前 首先要理解 js 语言的运行环境是单线程的 也就是说一次只能完成一个任务 也就是一条流水线 如果有多个任务就必须排队 前面一个任务完成 再执行后面一个任务 以此类推 这与 java 的多线程环境截然不同 所以要加以区分 1 对于 js 同步和异步 在这里需要加以备注一下 我们可以简单的理解为 可以改变程序执行顺序的操作就可以看成为异步操作 其实异步和同步的差别很简单 就在于这

    2026年3月19日
    3
  • 如何对图像进行卷积操作[通俗易懂]

    如何对图像进行卷积操作[通俗易懂]1、首先先了解下什么是卷积呢?2、卷积操作:卷积核与原图对应位置相乘再求和;然后将所求和放在被卷积操作的图中心位置。上图表示一个8×8的原图,每个方格代表一个像素点;其中一个包含X的方格是一个5×5的卷积核,核半径等于5/2=2;进行卷积操作后,生成图像为上图中包含Y的方格,可以看出是一个4×4的生成图;通过比较观察可以发现,生成图比原图尺寸要小,为了保证生成…

    2022年5月11日
    51
  • vb封装vba代码成exe文件_宏vba安装包

    vb封装vba代码成exe文件_宏vba安装包将ExcelVBA封装成exe程序[老贴收藏]假如您手头已有一xls文档等待封装,假如您机子上已安装有VB6开发系统,那么请跟着往下操作:一、用VB制作EXE文件头部分1、打开VB,“文件”-“新建工程”-“标准EXE”;2、此时会出现名为Form1的默认窗体编辑窗口,Form1将作为软件启动封面窗体,打开该Form1的属性窗口,对如下属性进行设置:BorderStyle=0,…

    2022年10月3日
    4
  • linux rhel7下安装python

    1.查看是否已经安装PythonCentos7默认安装了python2.7.5因为一些命令要用它比如yum它使用的是python2.7.5。使用python-V命令查看一下是否安装Pytho

    2021年12月29日
    60
  • 正确配置cursor的MCP服务器

    正确配置cursor的MCP服务器

    2026年3月15日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号