zoukankan      html  css  js  c++  java
  • PyQt 学习笔记2——PyQt框架简介

    PyQt 是Python语言下最流行,使用最为广泛的Qt绑定, Qt则是C++语言离最流行的GUI编程框架。
    那什么是Qt的Python绑定呢?意思就是原生的Qt是C++写的,没法再Python里之间使用,所以PyQt使用Python实现了Qt同样的接口类库,这个类库底层调用了Qt的库。接口的用法上保证跟源生Qt(类、方法、属性、参数、返回值)保持一致。
    这样以来如果写过C++的Qt的,只有稍微熟悉Python 语法基础就能写PyQt程序,反之亦然, 甚至写Golang 下的Qt GUI 程序也能很快上手类Qt的GUI程序。

    Qt 历史

    • 1991年 Haavard Nord和Eirik Chambe-Eng开始开发将会支持X11和Windows的Qt
    • 1994年 创立公司,早名为Quasar Technologies,然后更名为Troll Tech,然后在改为Trolltech,中文名是“奇趣科技”
    • 2008年 被NOKIA公司收购,以增强该公司在跨平台软件研发方面的实力,更名Qt Software。
    • 2012年 Qt被Digia从NOKIA收购
    • 2014年 跨平台集成开发环境Qt Creator 3.1.0正式发布,实现了对于iOS的完全支持,新增WinRT、Beautifier等插件
    • 2014年 Digia公司Qt开发团队宣布Qt 5.3正式版发布

    使用Qt开发的著名软件

    • Adobe Photoshop Album一个图像组织应用程序 [35]
    • Autodesk Maya 3D建模和动画软件
    • Battle.net 暴雪公司开发的游戏对战平台
    • CineFX 一款跨平台、开源、免费、影片剪辑,特效与合成套装
    • FreeCAD a free and open source 3D-Solid and general purpose design CAD/CAE
    • Google地球(Google Earth) 三维虚拟地图软件。
    • PDFedit 自由的PDF编辑器
    • Opera 著名的网页浏览器。
    • Qt Creator the free software cross-platform integrated development environment from Nokia
    • Skype 一个使用人数众多的基于P2P的VOIP聊天软件。
    • SMPlayer跨平台多媒体播放器
    • VirtualBox 虚拟机软件。
    • VLC多媒体播放器一个体积小巧、功能强大的开源媒体播放器。
    • 咪咕音乐 咪咕音乐是中国移动倾力打造的正版音乐播放器
    • WPS Office 金山软件公司推出的办公软件
    • 极品飞车 EA公司出品的著名赛车类游戏

    PyQt

    PyQt是Qt公司 Qt应用程序框架的一组Python v2和v3绑定,可 在Qt支持的所有平台上运行,包括Windows,OS X,Linux,iOS和Android。PyQt5支持Qt v5。PyQt4支持Qt v4,并将针对Qt v5进行构建。绑定是作为一组Python模块实现的,包含1000多个类。PyQt不包含Qt的副本。您必须自己获得Qt的正确许可副本。但是,提供了PyQt5的GPL版本的二进制车轮,这些二进制车轮包括Qt的LGPL版本的副本。

    为什么选择PyQt?

    PyQt汇集了Qt C ++跨平台应用程序框架和跨平台解释语言Pytho库。

    Qt不仅仅是一个GUI工具包。它包括网络套接字,线程,Unicode,正则表达式,SQL数据库,SVG,OpenGL,XML,功能齐全的Web浏览器,帮助系统,多媒体框架以及丰富的GUI小部件的抽象。

    Qt类采用信号/槽机制在对象之间进行通信,这种机制类型安全但耦合松散,因此易于创建可重复使用的软件组件。

    Qt还包括图形用户界面设计器Qt Designer。PyQt能够从Qt Designer生成Python代码。也可以将用Python编写的新GUI控件添加到Qt Designer。

    Python是一种简单但功能强大的面向对象的语言。它的简单性使其易于学习,但其强大功能意味着可以创建大型而复杂的应用程序。它的解释性质意味着Python程序员非常有生产力,因为没有编辑/编译/链接/运行开发周期。

    Python的强大功能来自其全面的扩展模块集,这些扩展模块提供了多种功能,包括HTTP服务器,XML解析器,数据库访问,数据压缩工具,当然还有图形用户界面。扩展模块通常以Python,C或C ++实现。使用诸如SIP之类的工具来创建封装现有C或C ++库的扩展模块是相对简单的。这样,Python便可以成为从已建立的库创建新应用程序的粘合剂。

    PyQt结合了Qt和Python的所有优点。程序员拥有Qt的全部功能,但是可以通过Python的简单性来利用它。

    PyQt5组件

    PyQt5包含许多不同的组件。首先,有许多Python扩展模块。这些都安装在 PyQt5Python软件包中,并在模块列表中进行了描述 。

    PyQt5作为多个源包和相应的二进制文件轮分发,每个源文件包实现一个或多个逻辑相关的扩展模块。

    PyQt5包含使Qt Designer和qmlscene能够使用Python代码扩展的插件。有关详细信息,请分别参见编写Qt Designer插件和 集成Python和QML。

    pyuic5对应于Qt uic实用程序。它将使用Qt Designer创建的基于QtWidgets的GUI 转换 为Python代码。

    pyrcc5对应于Qt rcc实用程序。它在Python模块中嵌入由资源收集文件描述的任意资源(例如,图标,图像,翻译文件)。

    pylupdate5对应于Qt的lupdate效用。它从Python代码中提取所有可翻译的字符串,并创建或更新.ts翻译文件。然后,Qt Linguist使用它们来管理这些字符串的翻译。

    PyQt5包含大量示例。这些是Qt提供的许多C ++示例的Python端口。它们可以在examples目录中找到 。

    PyQt 优点小结

    • 文档齐全: 由于接口方法和参数及返回值一致,所以可以直接参考Qt原生的文档,完全通用
    • 稳定性高: 使用面向对象的设计方法,接口文档稳定性高,使用信号/槽机制使得UI与逻辑分离
    • 生态健全: Qt Desinger 与UIC 等系列工具已经大量的Demo能快速开发应用程序,
    • 开源免费: 如果是开发的应用程序是也是开源发布是免费的,商业授权也不贵,退一步说可以使用Qt的亲儿子PySide, 可以闭源商业发布
  • 相关阅读:
    Xargs
    录制终端会话-script--查找find
    命令之乐-cat
    Linux_shell编程--比较与测试
    线程进程
    计算机网络基础
    python基础-列表相关
    初学Python
    numpy 基本的数组统计方法
    python 操作mysql 入门
  • 原文地址:https://www.cnblogs.com/onsunsl/p/PyQt_Gui_Fream.html
Copyright © 2011-2022 走看看