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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mysql 联合主键_Mysql 创建联合主键[通俗易懂]

    mysql 联合主键_Mysql 创建联合主键[通俗易懂]Mysql创建联合主键2008年01月11日星期五下午5:21使用primarykey(fieldlist)比如:createtablemytable(aaint,bbchar(8),ccdate,primarykey(aa,bb));aa,bb为联合主键不知道是不是因为mysql(6.0)的版本问题,还是各版本都是这种情况,mysql中创建联合主键,联合主键列名之外…

    2022年6月16日
  • 穿越时空 一台家庭NAS能为你带来什么

    穿越时空 一台家庭NAS能为你带来什么

    2022年3月6日
  • webgame开发简明教程

    webgame开发简明教程 webgame开发简明教程(1)研究所有点缺乏资料啊。讨论的问题怪怪的。只有很少是能用到的。一、简单的程序框架。webgame程序构成:三大部分。第一是数据流程。第二是程序。第三是美术。其中,数据流程包括了功能。也只有在功能中才能体现数据流程。数据流程相当的麻烦,后面再讨论。比如最简单的卖买产品。要实现这个功能。那么需要有产品基础表、产

    2022年5月2日
  • OpenCV中的width和widthstep[通俗易懂]

    OpenCV中的width和widthstep[通俗易懂]一是width属性;二是widthStep属性。     前者是表示图像的每行像素数,后者指表示存储一行像素需要的字节数。     在OpenCV里边,widthStep必须是4的倍数,从而实现字节对齐,有利于提高运算速度。     如果8U单通道图像宽度为3,那么widthStep是4,加一个字节补齐。这个图像的一行需要4个字节,只使用前3个,最后一个空着。

    2022年6月11日
  • keil uvision4 注册机 使用方法「建议收藏」

    keil uvision4 注册机 使用方法「建议收藏」1.先安装keiluvision4,然后打开“File”的“LicenseManagement”拷贝CID编号。2、打开KEIL_Lic.exe,“target”选择arm,如下图所示3、把MDK4.12的CID编号粘贴到下图CID里面,点击“Generate”。4、把上图红方框内生成的注册码,拷贝到下图的“NewLicenseIDCode”内

    2022年5月20日
  • mysql配置参数详解[通俗易懂]

    mysql配置参数详解[通俗易懂]mysql配置参数详解

    2022年4月24日

发表回复

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

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