Python

​ Python是一种成功的脚本语言,它最初是由Guido van Rossum开发的。它于1991年首次发布。Python的灵感来自于ABC和Haskell编程语言。Python是一种高级的、通用的、多平台的、解释型的语言。有人更喜欢称它为动态语言。它很容易学习。Python是一种极简主义语言。它最明显的一个特点是它不使用分号也不使用括号。Python使用缩进代替。今天,Python由全球一大批志愿者维护。

​ 对于创建图形用户界面,Python程序员可以在三个不错的选项中选择。PyGTK、wxPython 和 PyQt。

wxPython模块

​ wxPython是一个用于创建桌面GUI应用程序的跨平台工具箱。wxPython的主要作者是Robin Dunn。wxPython是wxWidgets的封装器,而wxWidgets是一个成熟的跨平台C++库,开发者可以通过wxPython在Windows、Mac和各种Unix系统上创建应用程序。wxPython由五个基本模块组成。

​ 控件模块提供了图形应用程序中常见的小部件。例如一个按钮,一个工具栏,或者一个笔记本。Widget在Windows操作系统下被称为控件。Core模块由开发中使用的基本类组成。这些类包括Object类,它是所有类的母类,Sizer,用于widget布局,Events,基本的几何类如Point和Rectangle。图形设备接口(GDI)是一组用于绘制到widget上的类。这个模块包含了用于操作字体、颜色、笔刷、笔或图像的类。Misc模块包含各种其他类和模块功能。这些类用于记录,应用程序配置,系统设置,与显示器或操纵杆一起工作。窗口模块由各种窗口组成,这些窗口构成了一个应用程序,例如一个面板,一个对话框,一个框架,或一个滚动窗口。

wxPython API

​ wxPython API 是一组方法和对象。控件是GUI应用程序的基本构件。在Windows下,widget称为控件。我们可以大致将程序员分为两类:他们要么编写应用程序,要么编写库。在我们这里,wxPython是一个库,应用程序员用它来编写应用程序。从技术上讲,wxPython是在一个名为wxWidgets的C++ GUI API上的封装器。所以它不是一个本地 API,也就是说,它不是直接用 Python 编写的。

​ 在 wxPython 中,我们有很多小控件。这些可以分为一些组。

基础控件

​ 这些控件为派生控件提供了基本功能。它们被称为祖先。它们通常不被直接使用。

顶级控件

​ 这些控件相互独立存在

容器

​ 容器中包含其他控件

动态控件

​ 这些控件可以由用户编辑。

静态控件

​ 这些控件显示信息。它们不能被用户编辑。

其他控件

​ 这些控件在应用程序中实现了状态栏、工具栏和按键栏。

继承

​ 在wxPython中,控件之间有一种特殊的关系。这种关系是通过继承来发展的。继承是面向对象编程的一个重要部分。小控件形成了一个层次结构,小控件可以继承其他小控件的功能。现有的类被称为基类、父类或祖类。继承的控件我们称之为派生控件或者子控件。

​ 假设我们在应用程序中使用一个按钮控件。按钮控件继承了四个不同的基类,最接近的类是wx.Control类。一个按钮控件是一种小窗口。所有出现在屏幕上的控件都是窗口,因此它们继承自wx.Window类。有一些对象是不可见的。例如 sizers, 设备上下文或 locale 对象。也有一些类是可见的,但它们不是窗口。例如,colour对象、caret对象或locale对象。并非所有的widgets都是控件。例如wx.Dialog不是控件的一种。控件是放置在其他称为容器的widgets上的widgets,。这就是为什么我们有一个单独的wx.Control基类。

​ 每个窗口都可以对事件做出反应。按钮部件也是如此。通过点击按钮,我们启动了wx.EVT_COMMAND_BUTTON_CLICKED事件。按钮小组件通过wx.Window类继承了wx.EvtHandler。每个对事件做出反应的widget都必须继承wx.EvtHandler类。最后,所有的对象都继承自wx.Object类。

wxpython 调用子窗口_wxpython简介相关推荐

  1. wxpython 调用子窗口_wxpython入门第一步(简单例子)

    在这部分wxPython教程中,我们将创建一些简单的例子. 简单的例子 ​ 我们从一个非常简单的例子开始.我们的第一个脚本将只显示一个小窗口.它不会做太多事情.我们将逐行分析这个脚本. # simpl ...

  2. iframe 父窗口和子窗口相互的调用方法集锦

    一.父窗口调用iframe子窗口方法 1.HTML语法:<iframe name="myFrame" src="child.html"></i ...

  3. qt如何把父窗口的变量传给子窗口_父窗口和iframe子窗口之间相互传递参数和调用函数或方法...

    1.父窗口向子窗口传递参数: 可以在url中添加参数:2.html?a=1&b=2&c=3 然后在子页面上可用js解析,提供一个函数: function getQueryStr(sAr ...

  4. 父窗口、子窗口和Silverlight之间的相互调用

    啊哈~ 爷爷,爸爸,儿子~ 三代同堂~ 前两天做 silverlight 的东西,主页面打开一个子页面,然后子页面中包含一个 silverlight 应用程序 那难免会涉及到他们三者相互调用的问题 其 ...

  5. pyqt5调用子窗口子窗口闪退的问题

    pyqt5主窗口调用子窗口,问什么有时候子窗口会闪退呢? 因为很多时候我们建立的子窗口对象是一个局部变量就像这样 那么我们运行完函数,理论上局部变量会被回收,也就是当我们子窗口show()出来以后一瞬 ...

  6. javascript调用父窗口(父页面)的方法

    window.parent与window.opener的区别 javascript调用主窗口方法 1:   window.parent 是iframe页面调用父页面对象 举例: a.html Html ...

  7. Qt/C++主窗口和子窗口之间传递参数

    一.用信号和槽 二.在主窗口声明一个子窗口的指针,用这个指针调用子窗口的函数 dialog *pic=new dialog(); pic->getColor(QColor col); col就可 ...

  8. [轉]子窗口和父窗口的函数或对象能否相互访问

    子窗口和父窗口的函数或对象能否相互访问 解决思路:        每一个窗口其实也是一个对象,窗口内的对象或函数就相当于对象内的对象或方法,问题的关键是如何取得窗口对象的控制句柄,不同的窗口的控件句柄 ...

  9. C#关闭子窗口而不释放子窗口对象的问题解决

    在网上找来一些方式,感觉还都不错,下面给出方式: 在线扫描相机的调试过程中,需要开辟调试界面来进行位置的配置.调试结束后,一种常用的方式是将调试参数保存并在下次启动时加载.另一种简单方式是直接使用该参 ...

最新文章

  1. oracle startup mount nomount 区别
  2. mysql数据库访问控制_一文总结MySQL数据库访问控制实现原理
  3. URAL 1993 This cheeseburger you don't need
  4. SPOJ4487(Splay树)
  5. android 清空所有控件,如何清空android ListView控件的内容
  6. Java 算法 礼物分配
  7. 海龟交易法则02_揭秘海龟思维
  8. SharePoint专家新闻轮转器WebPart----亲測力推之Web部件
  9. python3中split的用法_python3 - 对有规律的字符串进行切割(split用法)
  10. 三层交换机实现不同vlan间通信
  11. [免费配音软件]语音合成,让阿里云小姐姐为你的视频配音
  12. easypanel php.ini,虚拟主机控制面板(easypanel)下载_虚拟主机控制面板(easypanel)官方下载-太平洋下载中心...
  13. 如何生成漂亮的点云渲染图?
  14. 视频号还是直播?2021年微信财富密码预言
  15. ant学习笔记—自定义Ant任务
  16. MACD指标的数学意义解析
  17. Flink菜鸟教程(二)——时间概念
  18. 详解i++和++i,通俗易懂
  19. 从前端Vue/Axios到后端交互--浅谈Vue生命周期、Ajax调用
  20. 美赛数据(各国统计数据网站大全)

热门文章

  1. PAT乙级1003我要通过!
  2. 机器学习第三回——逻辑回归 (Logistic Regression)
  3. iOS 使用UILocalizedIndexedCollation实现区域索引标题(Section Indexed Title)即拼音排序...
  4. unity 2017 代码加密
  5. JavaScript隐式类型转换
  6. 移动端车牌识别(前端识别、后端识别)的区别分析
  7. 销售联系客户 需要技巧
  8. [Ext JS ] 7.25.1 Form或者面板自动定位到错误的输入框
  9. linux+tux游戏,Linux吉祥物游戏SuperTux 0.5.0版发布 类《超级马里奥兄弟》
  10. MySQL 添加字段报错1005 Can‘t create table ‘#sql-12d23_4bd‘ (errno: 28)