zoukankan      html  css  js  c++  java
  • Python Qt 简介

    Python图形界面开发的几种方案

    前面的教程中,我们程序的用户交互界面都是命令行终端窗口。

    程序的用户交互界面,英文称之为 UI (user interface)

    当一个应用的 UI 比较复杂的时候,命令行方式就不便用户使用了,这时我们需要图形界面。

    如果用 Python 语言开发 跨平台 的图形界面的程序,主要有3种选择:

    • Tkinter

      基于Tk的Python库,这是Python官方采用的标准库,优点是作为Python标准库、稳定、发布程序较小,缺点是控件相对较少。

    • wxPython

      基于wxWidgets的Python库,优点是控件比较丰富,缺点是稳定性相对差点、文档少、用户少。

    • PySide2、PyQt5

      基于Qt 的Python库,优点是控件比较丰富、跨平台体验好、文档完善、用户多。

      缺点是 库比较大,发布出来的程序比较大。


    白月黑羽的建议是,如果大家要开发小工具,界面比较简单,可以采用Tkinter。

    如果是发布功能比较多的正式产品,采用 基于Qt的PySide2、PyQt5。

    本教程介绍的就是 使用 PySide2、PyQt5 开发Python程序的图形界面。


    PySide2、PyQt5 简介

    PySide2、PyQt5 都是基于著名的 Qt 库。

    Qt库里面有非常强大的图形界面开发库,但是Qt库是C++语言开发的,PySide2、PyQt5可以让我们通过Python语言使用Qt。

    但是 PySide2、PyQt5 这两者有什么区别呢?

    可以形象地这样说: PySide2 是Qt的 亲儿子 , PyQt5 是Qt还没有亲儿子之前的收的 义子 (Riverbank Computing这个公司开发的)。

    那为什么 PyQt5 这个义子 反而比 PySide2 这个亲儿子更出名呢?

    原因很简单:PySide2 这亲儿子最近(2018年7月)才出生。

    但是亲儿子毕竟是亲儿子,Qt准备大力培养,PySide2 或许更有前途。

    已经在使用 PyQt5 的朋友不要皱眉, 两个库的使用 对程序员来说,差别很小:它们的调用接口几乎一模一样。

    如果你的程序是PyQt5开发的,通常只要略作修改,比如把导入的名字从 PyQt5 换成 PySide2 就行了。反之亦然。

    注意:必须先具备Python基础知识,才可以学习本教程。还没有Python基础的朋友,可以直接学习本网站的Python基础教程。

    安装 PySide2

    很简单,直接执行

    pip install pyside2
    

    即可下载安装。

    这个库比较大,大概有100M左右,大家耐心等待。

    有的朋友,网络比较慢,可以指定国内的安装源,下载安装。

    比如,使用豆瓣源下载安装:

    pip install pyside2 -i https://pypi.douban.com/simple/
    

    建议:如果你的程序要发布给客户使用,建议使用32位的Python解释器,这样打包发布的exe程序可以兼容32位的Windows

    注意:

    Qt 官方网站声明了: Windows上 Python 3.8.0 调用 Qt 5.14 , 会有问题。

    有类似下面这样的导入错误

    ImportError: Dll load failed while importing shiboken2: 找不到指定的程序
    

    所以, 就是不能用 Python 3.8.0 ,请使用3.8.1或者以后的版本, Python 3.7 也可以。

    安装PyQt5

    如果你选择PyQt5,直接执行

    pip install pyqt5-tools
    

    即可同时安装 PyQt5 和 一些重要的工具,比如 Qt designer。

    天道酬勤 循序渐进 技压群雄
  • 相关阅读:
    Elasticsearch Query DSL 整理总结(三)—— Match Phrase Query 和 Match Phrase Prefix Query
    Elasticsearch Query DSL 整理总结(二)—— 要搞懂 Match Query,看这篇就够了
    Elasticsearch Query DSL 整理总结(一)—— Query DSL 概要,MatchAllQuery,全文查询简述
    Elasticsearch Java Rest Client API 整理总结 (三)——Building Queries
    Elasticsearch date 类型详解
    python 历险记(五)— python 中的模块
    python 历险记(四)— python 中常用的 json 操作
    python 历险记(三)— python 的常用文件操作
    Elasticsearch Java Rest Client API 整理总结 (二) —— SearchAPI
    Elasticsearch Java Rest Client API 整理总结 (一)——Document API
  • 原文地址:https://www.cnblogs.com/wuyuan2011woaini/p/14750871.html
Copyright © 2011-2022 走看看