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


相关推荐

  • Python爬虫之BeautifulSoup

    Python爬虫之BeautifulSoup目录BeautifulSoup介绍BeautifulSoup安装使用简单使用标签选择器获取标签整个,包括内容和标签本身获取标签名字获取标签属性获取标签内容嵌套标签获取获取子节点列表形式获取迭代器形式获取获取所有子孙节点获取父节点获取祖先节点获取兄弟节点标准选择器通过标签名(name)查找通过属性(attrs)查找传入样式选择器查找通…

    2022年5月28日
    31
  • Away3D基础教程(二):加载外部模型[通俗易懂]

    Away3D基础教程(二):加载外部模型[通俗易懂]预览地址:http://leoas.host-home-idc.k5.fhfinance.com/tutorials/2/glass.html模型随鼠标转动,中键滚轮缩放。模型和完整源码下载:http

    2022年7月2日
    27
  • 实战DeviceIoControl 之中的一个:通过API訪问设备驱动程序

    实战DeviceIoControl 之中的一个:通过API訪问设备驱动程序

    2021年12月6日
    53
  • ubifs使能和禁止压缩_移植不成功胚胎去哪了

    ubifs使能和禁止压缩_移植不成功胚胎去哪了我在用TI的dm368开发板,kernel是2.6.32.17,默认的flash文件系统是jffs2,但是jffs2在大分区下,mount速度很慢,而且占用ram较多,因此,我想使用ubifs看看性能是否会更好些。ubifs的原理和配置过程,很多网页都有介绍的,我给一个链接,大家可以看看,我就不转载了,我重点说我移植过程中遇到并解决的问题。http://bbs.chinaunix.net/

    2022年8月13日
    4
  • Openssl Heartbleed

    Openssl Heartbleed近日闹的沸沸扬扬的Heartbleed漏洞,仿佛一下子再次将人们拉回了对网络安全的关注和担忧。这个问题就是由于服务器端没有对用户发过来的心跳包数据进行边界检查,服务端根据用户心跳包指定的数据长度来返回同样长度的数据。如果用户指定长度为100字节,而实际心跳数据的长度只有1字节,服务端还是会memcpy长度100字节的数据,这样就会把服务端内存中的数据返回给用户,可能会…

    2022年7月15日
    16
  • loadrunner安装包下载_loadrunner2021安装

    loadrunner安装包下载_loadrunner2021安装LoadRunner安装包下载:下载链接:https://pan.baidu.com/s/10BdYFXLPYdW6N7Q67D8mjQ提取码:a3piLoadRunner安装:下载后找到路径,点击下载后的HPELoadRunner12.55CommunityEdition.exe(安装版)运行,建议鼠标右键以管理员身份运行(运行的时候尽量右键管理员运行,如果没有选择右键管理员运行,会提示权限,点击是就可以啦)选择安装的地址(所有的安装地址不能有中文),可以选择默认地.

    2022年8月31日
    5

发表回复

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

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