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


相关推荐

  • Docker设置2375端口「建议收藏」

    Docker设置2375端口「建议收藏」Docker设置2375端口1.查看docker.service文件位置2.修改docker.service文件1.查看docker.service文件位置systemctlstatusdockerdocker.service路径为:/usr/lib/systemd/system/docker.service2.修改docker.service文件…

    2022年5月5日
    310
  • Repeater嵌套绑定Repeater「建议收藏」

    Repeater嵌套绑定Repeater「建议收藏」Repeater嵌套Repeater的结构: cs代码:  Code private void RpTypeBind()   {       //GetQuestionTypeAndCount() 返回一个datatable        this.rptypelist.DataSource = LiftQuestionCtr.GetQuestio…

    2022年7月14日
    17
  • USB流量分析「建议收藏」

    USB流量分析「建议收藏」1.USB接口简介通过监听USB接口流量,可获取键盘击键,鼠标移动与点击,存储设备的明文传输通信,USB无线网卡网络传输内容等。2.题目wireshark打开数据包后发现为usb协议USB协议数据部分在LeftoverCaptureData域中,使用tshark命令将其单独提取出来tshark-rudn.pcapng-Tfields-eusb.capdata>us

    2022年6月4日
    216
  • (一)什么是流程引擎?为什么学习流程引擎?

    activity(流程引擎)从零入门到实战学习欢迎使用Markdown编辑器1.什么是流程引擎?2.为什么需要学习流程引擎?3.为什么选择activiti?功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编

    2022年4月5日
    242
  • random.nextInt()的值重复

    random.nextInt()的值重复1、当random.netInt(数字)中数字小的时候,比较容易重复。这个随机是有规律的。2、可以用math.random()替代具体使用如下:如果是个位数intaa=(int)(Math.random()*11);如果是多位,doubledd=Math.random();  dd加上0和点总共19位。可以用long转一下…

    2022年7月21日
    14
  • lstm分类模型_模型有哪两种

    lstm分类模型_模型有哪两种介绍LSTM模型在语言模型,机器翻译等领域取得了非凡的成就,然后LSTM网络有几百万的参数以及需要数周在多GPU系统中进行训练。因此,一下介绍两种方法来缩减网络参数以及训练时间。两种方法分别为factorizedLSTM(FLSTM)以及groupLSTM(GLSTM)。FLSTMFLSTM网络主要是将大的LSTM矩阵转化为两个小的矩阵。LSTM模型简单介绍在LST…

    2022年9月10日
    0

发表回复

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

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