我们在第〇篇里先演示了GUI的功能,其实Python有多个库是支持GUI编程的,python官网列出了大量的说明,其中包括了原生的tkinter

还有许多第三方库

Pyqt

PySide

wxPython

PyGUI

Kivy.....等等

选库标准

首先,我们要明白,对任意一个库来说,都是没有最好的,只由最合适的,所以我们要结合这几点来来选择最适合自己的库:

1.简单好用

2.功能强大

3文档齐全,方便查询

4.性能强劲

5.稳定性高

6.生态支持

7.跨平台支持

8.开源免费.

除了上述的几点外,还有两点非常重要

可以看看软件版本和最近的更新时间,尽可能避开最小的版本号的和很久没有更新的,因为版本号太小是刚出的,有可能很多BUG都没有暴露出来,而太久没有更新的已经没有技术支持了,在大型的项目里一旦出了问题太难维护。

基于以上标准对比,我选择了PyQt5。

什么是PyQt?

PyQt本质上还是Qt,是一个用C++写的一个跨平台的GUI开发框架。而PyQt是Qt用Python进行了绑定,在保留原有的API时实现了原有的所有功能。所以一旦掌握了PyQt后再掌握了C++的基本语法可快速接受Qt的使用。

而现在使用的PyQt5,是Python对Qt5.x版本的绑定,完美的支持了Python3.x。

GUI编程要学习什么?

1.各种控件的特性和使用 

2.控件的样式

3.资源的加载

4.控件的布局

5.事件和信号

6.动画特效

7.界面跳转

8.设计工具的使用

9.额外的东西

我们把设计工具放在最后,就是在学会代码的时候利用QtDesigner之类的工具优化我们的编程流程,就是为了防止我们先会用设计工具忽略代码的方法。

PyQt5库结构

QtWidgets包含了一整套UI元素,用于建立符合系统风格的界面

QtGui 涵盖了多种基本图形功能的类:字体、图形、图标、颜色等

QtCore 涵盖了包的核心非GUI功能:时间、文件、目录、数据类型、文本流、连接、线程进程等

这三个是最长用的类,后面的我们以后有时间再讲

还有一个模块:Qt,是把所有的类综合到一个模块里。好处就是不用关心哪个模块里有哪些类,但是由于加载了所有的类,比较吃内存,适合新手学习时候使用。

下面用一个最简单的代码分析一下PyQt5程序基本结构

from PyQt5.Qt import *
import sys
app= QApplication(sys.argv) window = QWidget()
window.setWindowTitle('first GUI')
window.resize(500,500)#窗口大小
window.move(0,0)#窗口位置 lable = QLabel(window)
lable.setText('Hello World!')
lable.move(200,200) window.show()
sys.exit(app.exec_())

First_GUI

from PyQt5.Qt import *
import sys #导入模块
app = QApplication(sys.argv)#创建应用程序
window = QWidget() window.show()#控件操作 sys.exit(app.exec_())#开始执行应用程序并进入消息循环(无限循环)

注意通过app.exec_(),启动了一个无限循环,在这个循环里不断监听和用户的交互信息。

在控件操作的时候,常规方式就是先建立一个界面的父控件,再针对这个父控件建立按钮、标签等控件,完成后调用父控件的显示功能。

GUI学习之一——PyQt5初识的更多相关文章

  1. Java GUI学习笔记之初识AWT和Swing

    Frame f = new Frame(); //获取显示器的尺寸 Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize() ...

  2. 二、Android学习第二天——初识Activity(转)

    (转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 一. Android学习第二天——初识Activity 昨天程序搭建成功以 ...

  3. Java学习-027-JSON 之一 -- 初识

    通常,我们在生活中使用的应用产品(无论是 Web应用还是 App 应用),又或者我们平常的信息交流,均无可避免的存在着信息交互,在信息交互的过程中就有着信息载体的存在.那么,在我们熟知的网络应用产品中 ...

  4. WPF学习之路初识

    WPF学习之路初识   WPF 介绍 .NET Framework 4 .NET Framework 3.5 .NET Framework 3.0 Windows Presentation Found ...

  5. Storm学习笔记 - Storm初识

    Storm学习笔记 - Storm初识 1. Strom是什么? Storm是一个开源免费的分布式计算框架,可以实时处理大量的数据流. 2. Storm的特点 高性能,低延迟. 分布式:可解决数据量大 ...

  6. [学习一个] Matlab GUI 学习笔记 Ⅰ

    Matlab GUI 学习笔记 Ⅰ 1. Foreword Matlab 是严格意义上的编程语言吗?曾经有人告诉我他是通过 Matlab 学会了面对对象编程,我是不信的,但这依然不妨碍它在特殊领域的强 ...

  7. [转]git学习------>git-rev-parse命令初识

    git学习------>git-rev-parse命令初识 2017年06月13日 10:04:13 阅读数:2172 一.准备工作 第一步:在d盘git test目录下,新建工作区根目录dem ...

  8. Spring 学习记录8 初识XmlWebApplicationContext(2)

    主题 接上文Spring 学习记录7 初识XmlWebApplicationContext refresh方法 refresh方法是定义在父类AbstractApplicationContext中的. ...

  9. LevelDB学习笔记 (1):初识LevelDB

    LevelDB学习笔记 (1):初识LevelDB 1. 写在前面 1.1 什么是levelDB LevelDB就是一个由Google开源的高效的单机Key/Value存储系统,该存储系统提供了Key ...

随机推荐

  1. Substring方法(C#,JS,Java,SQL)的区别

    C#: substring(第一参数,第二参数)//  第一参数:从第几位开始截,初始是从0位开始  第二参数:截取几位 substring(参数)  如果传入参数为一个长整, 且大于等于0,则以这个 ...

  2. selenium +chromdriver模块

    1   selenium 模拟浏览器行为 2 chromdriver   对应的chrome浏览器驱动 下载地址 注意:chrome与chromdriver存在对应关系   以下错误就可能是版本不对应 ...

  3. Scrapy实战篇(三)之爬取豆瓣电影短评

    今天的主要内容是爬取豆瓣电影短评,看一下网友是怎么评价最近的电影的,方便我们以后的分析,以以下三部电影:二十二,战狼,三生三世十里桃花为例. 由于豆瓣短评网页比较简单,且不存在动态加载的内容,我们下面 ...

  4. 基于CentOS搭建个人Leanote云笔记本

    Leanote 依赖 MongoDB 作为数据存储,下面开始安装MongoDB: 1. 下载启动 MongoDB 下载 MongoDB 进入 /home 目录,并下载 MongoDB: cd /hom ...

  5. text-transform CSS

    text-transform  控制文本的大小写(只对英文起作用,对汉字无效) Example: <p class="p1">This is an HI Element ...

  6. hadoop的hdfs中的javaAPI操作

    package cn.itcast.bigdata.hdfs; import java.net.URI; import java.util.Iterator; import java.util.Map ...

  7. gentoo Cataclysm - Dark Days Ahead

    gentoo 中安装 Cataclysm - Dark Days Ahead,使用web 下载稳定版的安装包,使用 tar 进行解压. 安装需要共享库:sdl2-mixer, 未完待续

  8. 遇到问题或bug时要做的事。

    1,做事细心,只有细心才能减少bug量,做总结. 2,开发中遇到bug和错误,第一要想到是程序代码的问题.而首先想到的不是其他问题(比如版本,框架或兼容问题等). 3,程序不能按照自己的意愿执行,时先 ...

  9. java利用泛型实现不同类型可变参数

    public class VP { public <T> void printMsg(T... args){ for (T t:args){ System.out.println(&quo ...

  10. Python第1天

    今天主要学习内容如下: 概论,各种开发语言的对比,高级语言包括:python(开发效率高,执行效率低) Java(开发效率低,执行效率高),PHP,低级语言包括:C语言,汇编语言: Python 语言 ...