您的位置 首页 > 数码极客

〈anaconda如何安装qt5〉anaconda如何安装cv2…

前言

本文介绍利用Python开发GUI应用程序时几种常见的跨平台Python GUI库。

注:本文基本开发环境配置为:

- window7(64位)

- Python 3.8.5

- 以及各类Python GUI库

本次分享内容的目录如下:

前言

基本概念(CLI、GUI、GUI库、Python GUI库)

基于Tk的Tkinter(简介、特点、应用、简单示例)

基于wxWidgets的wxPython(简介、特点、应用、安装、示例)

基于Qt的PyQt(简介、特点、应用、安装、示例)

基于Qt的PySide2(Qt for Python)(简介、特点、应用、安装、示例)

基于GObject的PyGObject(简介、特点、应用、安装、示例)

结束语


1. 基本概念

在文章开始,我们先来理清几个重要概念:

1.1 CLI(命令行界面)

CLI 是 Command-Line Interface 的英文简称,中文意思为命令行界面(或命令行接口),是指用户通过键盘方式来显示计算机操作界面(接口)。用户通过键盘输入指令,计算机接收到指令后,予以执行,并在显示器上输出相关信息。

下面是 Windows 系统上一个典型的 CLI 程序 (Windows PowerShell) 运行时的示意图:

在1973年以前,用户都是通过命令行界面(CLI)方式显示计算机操作界面的。命令行界面的程序通常需要用户记忆操作的命令。

1.2 GUI(图形用户界面)

GUI 是 Graphical User Interface 的英文简称,中文意思为图形用户界面(或图形用户接口),是指采用图形方式显示的计算机操作用户界面,是一种人与计算机通信的界面交互方式。

在 GUI(图形用户界面)中,用户看到和操作的都是图形对象(计算机屏幕上显示窗口、菜单、图标、按钮、对话框等),用户通过鼠标等输入设备进行操纵,以完成不同的动作目的(如运行程序、打开文件等)。

下面是类Unix系统 X Window System上 GUI 之一的 KDE Plasma Desktop 运行时的示意图:

与早期计算机使用的命令行界面相比,图形界面对于用户来说在视觉上更易于接受,学习成本大幅下降,也让计算机的大众化得以实现。

不过由于命令行界面要较图形用户界面节约计算机系统的资源,在熟记命令的前提下,使用命令行界面往往要较使用图形用户界面的操作速度要快,所以在现在的图形用户界面的操作系统中,通常都保留着可选的命令行界面。

1.3 GUI库

GUI 库也称部件工具箱(Widget Toolkits),是指在程序设计时某些基本的GUI的组件元素的集合。它们一般以库或者应用程序框架的形式出现。

GUI 库包含一组部件(Widget),部件是一系列图形控制元素的集合(如:按钮、标签、文本框等)。在构建GUI程序时,通常使用层叠方式,众多图形控制元素直接叠加起来。

GUI 库分为偏底层的GUI库更高级的GUI库

常见的偏底层的GUI库有:

  • WIndows API
  • X Window System 中包含了许多基本的部件,但通常需要通过Motif、Gtk+或者Qt来使用

常见的更高级的GUI库有:

  • Windows平台:
    • MFC(Microsoft Foundation Classes):是Windows API的封装。
    • Windows Forms:.NET的库类集,可进行GUI控制。
  • 跨平台(基于C或者C++,也经常与其他编程语言绑定):
    • Tk , Tcl 以及其他高级脚本语言用到的工具集(在Python中的接口是Tkinter)
    • GTK+ :主要针对X Window System,用于GNOME桌面环境。
    • Qt:可用于Unix/Linux(X Window)、MS Windows、Mac OS X、Windows CE以及Embedded Linux,用于KDE桌面环境。
    • wxWidgets(以前是wxWindows):针对C++、Python以及Perl的跨平台工具集。
    • FLTK:跨平台工具集,特点是小而快。
  • 跨平台(基于Java)
    • AWT(Abstract Windowing Toolkit):用于Java程序,通常在选定的平台下运行另一个工具集。
    • SWing:AWT的替代品。
    • SWT(Standard Widget Toolkit):Java的本地部件工具集,是Eclipse项目的一部分。SWT运行相应平台下的部件工具集(如Windows API,或者GTK+)。

1.4 Python GUI库

当我们使用Python语言编写GUI应用程序时,一般不会自己从最底层去实现,通常会使用更高层次的Python GUI库来完成。

由于Python的广泛流行,目前有众多优秀的 Python GUI库可供开发者选择,如:基于Qt的PyQt5、基于Qt的Qt for Python(PySide2)、基于wxWidgets的wxPython、基于Tk的Tkinter、基于GObject的PyGObject等。

下面就为各位朋友们简要介绍这几种常见的跨平台Python GUI库。


2 基于Tk的Tkinter

首先介绍的是基于Tk GUI库的Tkinter。因为Tkinter是Python语言内置的GUI库。

2.1 Tkinter简介

Tk是一个由C语言编写的轻量级的跨平台GUI库。Tkinter(也称Tk接口)是标准的Tk GUI库的Python接口。

借助Tkinter,Python开发人员可以快速地创建跨平台的简单的 GUI 应用程序。

2.2 Tkinter特点

  • Python内置库,无需额外安装,随时使用
  • 功能全面,学习和应用简单,开发速度快
  • 适用开发不太复杂的GUI应用程序
  • 2.3 Tkinter典型应用

    Python自带的IDLE应用程序就是用Tkinter编写的,示意如下:

    2.4 Tkinter简单示例

    一、示例代码:

     # 文件名:exam    from tkinter import *    root = Tk()  root.title("TkinterWindow")  root.geometry("400x100")    label = Label(root, text="这是一个Tkinter窗口!").pack(expand=True)    root.mainloop()  

    二、示例运行效果:


    3 基于wxWidgets的wxPython

    3.1 wxPython简介

    wxWidgets是一个由C++语言编写的跨平台GUI库。wxPython是对wxWidgets的Python封装/绑定,可以Python模块的方式提供给开发者使用。

    借助wxPython,Python开发人员可以很方便地创建跨平台的,具有健壮、功能强大的GUI应用程序。

    wxPython是一款开源软件,是Tkinter的一个比较流行的替代品,功能上面要强于Tkinter。wxPython提供了超过200个类,面向对象的编程风格,设计的框架类似于MFC。

    项目信息:

    (1)项目主页:

    (2)项目(PyPI)网址:

    (3)项目最新版本:v4.1.0(2020/04/25)

    3.2 wxPython特点

    • 程序简单
    • 易于编写
    • 易于理解
    • 针对大型GUI应用程序具有较强的优势

    3.3 wxPython典型应用

    • GRASS GIS,一种免费且开源的地理信息系统桌面应用程序(如下图示)。

    • BitTorrent,一种点对点的BitTorrent应用程序。
    • Google Drive,Google云端存储系统的桌面客户端。
    • PlayOnLinux,一个Wine软件兼容层的图形化前端应用程序。

    3.4 wxPython模块安装

    可以在终端通过 pip install wxPython 命令完成 wxPython 模块的安装,如下:

     PS C:\> pip install wxPython  Collecting wxPython    Downloading wxPy MB)  Requirement already satisfied: numpy; python_version >= "3.0" in c:\develop\python\lib\site-packages (from wxPython) )  Requirement already satisfied: six in c:\develop\python\lib\site-packages (from wxPython) )  Requirement already satisfied: pillow in c:\develop\python\lib\site-packages (from wxPython) )  Installing collected packages: wxPython  Successfully installed wxPy  PS C:\>

    3.5 wxPython简单示例

    一、示例代码:

    # 文件名:exam   import wx app = wx.App(False) frame = wx.Frame(None, -1, title="wxPython", size=(400,160)) wx.StaticLine(frame, size=(400, 1)) wx.StaticText(frame, -1, "这是一个wxPython应用程序!", pos=(80, 40)) (True) a()

    二、示例运行效果:


    4 基于Qt的PyQt

    4.1 PyQt简介

    Qt是一款非常优秀和知名的C++应用程序开发框架,广泛用于开发跨平台GUI库,它体系庞大、接口丰富、文档齐全。

    PyQt提供了对 Qt C++ GUI类库封装的Python绑定,可以Python模块的方式提供给开发者使用。借助PyQt,Python开发人员可以很方便地创建各种美观、复杂、功能强大的跨平台的GUI应用程序。

    PyQt是一款自由软件,其开发者是英国的“Riverbank Computing”公司。它提供了GPL与商业许可两种授权方式:个人可以免费地用于自由软件的开发,同时又可以提供良好的商业支持。PyQt已经发展了很多年,技术比较成熟稳定,技术文档也比较丰富,具备靠前的影响力。PyQt3支持Qt1到Qt3;PyQt4支持Qt4;PyQt5支持Qt5。

    项目信息:

    (1)项目主页:

    (2)项目(PyPI)网址:

    (3)项目最新版本:v5.15.0(2020/06/01)

    4.2 PyQt特点

    • PyQt的API与Qt类似,Qt的文档通常仍然可以应用于PyQt,因此PyQt的开发文档比较丰富。
    • 可以通过Qt Designer工具使用拖拉式的方法来设计界面,简单易用。
    • 在使用PyQt的过程中要注意避免内存泄露以及悬挂指针。
    • 运行文件比较大。
    • 需要掌握一些C++相关知识。
    • 适合开发大型、复杂、商用GUI应用程序。

    4.3 PyQt5典型应用

    • Eric Python IDE:运行截图(如下图示)

    • Anki,:一个间隔重复抽认卡桌面应用程序
    • QtiPlot,:一种分析和可视化科学数据的计算机桌面应用程序

    4.4 PyQt5库安装

    可以在终端通过 pip install PyQt5 命令完成 PyQt5 库的安装,如下:

     PS C:\> pip install PyQt5  Collecting PyQt5    Downloading PyQ MB)  Collecting PyQt5-sip<13,>=12.8    Downloading PyQ (63 kB)  Installing collected packages: PyQt5-sip, PyQt5  Successfully installed PyQ PyQ  PS C:\>

    4.5 PyQt5简单示例

    一、示例代码:

    # 文件名:exam import sys from PyQ import * app = QApplication) win = QWidget() win.resize(400, 100) win.setWindowTitle('PyQt5') label = QLabel("这是一个PyQt5应用程序!", win) win.show() ())

    二、示例运行效果:


    5 基于Qt的PySide2(Qt for Python)

    5.1 PySide2简介

    Qt是一款非常优秀和知名的C++应用程序开发框架,广泛用于开发跨平台GUI库,它体系庞大、接口丰富、文档齐全。

    PySide2(又称Qt for Python)提供了对 Qt C++ GUI类库封装的Python官方绑定,这样就可以在Python应用程序中使用Qt5的API(PySide2模块提供对各个Qt模块,如QtCore、QtGui、QtWidgets等的访问),允许Python开发人员充分利用Qt的潜力来开发各种美观、复杂、功能强大的跨平台的GUI应用程序。

    历经了Trolltech->Nokia->Digia Plc->Qt Group多次沿革,目前的PySide2提供了GPL、LGPL与商业许可三种授权方式。

    PySide2提供了与PyQt5类似的功能,区别在于另外提供了LGPL授权(意味着开发者可以免费用于商业)。

    PySide2附带一个Python绑定生成器Shiboken2(Qt for Python可以用它来创建PySide2模块),可以把C++项目转换为Python项目。

    项目信息:

    (1)项目主页:

    (2)项目(PyPI)网址:

    (3)项目最新版本:v5.15.0(2020/05/27)

    5.2 PySide2特点

    使用PySide2(Qt for Python)可以充分利用Qt的应用程序开发框架和功能丰富的类设计GUI程序,主要有以下一些优点:

    • 将Qt的跨平台应用框架与Python的跨平台解释语言结合在了一起。
    • Qt使用信号与槽(Signals/Slots)机制进行对象之间的通信,它是类型安全且弱耦合的,易于创建可重用的软件模块。
    • 使用Qt Creator中的UI Designer或独立的Qt Designer可以可视化地设计窗体,然后将窗体转换为Python程序,可以大大提高界面设计的效率。
    • 将Qt和Python的优点结合到了一起,程序员可以利用Qt丰富的UI设计功能,但不需要使用复杂的C++语言,而是使用Python语言编程。
    • 是Qt的“亲儿子”,具备Qt官方支持
    • 比较适合开发复杂、大型的GUI应用软件

    当然也存在一些相应缺点:

    • 运行文件比较大。
    • 需要学习一些C++相关知识,以便于阅读开发文档。

    5.3 PySide2典型应用

    • Qt Designer:运行截图(如下图示)

    5.4 PySide2模块安装

    可以在终端通过 pip install PySide2 命令完成 PySide2 模块的安装,如下:

     PS C:\> pip install PySide2  Collecting PySide2    Downloading PySide2-5.15.0-5.15.0-c MB)  Collecting shiboken2==5.15.0    Downloading -5.15.0-c MB)  Installing collected packages: shiboken2, PySide2  Successfully installed PySide2-5.15.0  PS C:\>

    5.5 PySide2简单示例

    一、示例代码:

    # 文件名:exam import sys from PySide2.QtWidgets import * app = QApplication) win = QWidget() win.resize(400, 100) win.setWindowTitle('PySide2') QLabel("这是一个PySide2应用程序!", win) win.show() ())

    二、示例运行效果:


    6 基于GObject的PyGObject

    6.1 PyGObject简介

    GObject是一个在LGPL许可下发布的自由软件库,它提供了一个轻便的对象系统并支持透明的多语言互通,可以直接使用在C程序中。GObject仅依赖于GLib和libc。它是GNOME的基石并且在GTK+,Pango,Accessibility Toolkit和大多数GNOME的高级库和应用程序中被广泛使用。

    PyGObject提供了基于 GObject的库(例如GTK,GStreamer,WebKitGTK,GLib,GIO 等)封装的Python绑定。PyGObject使用glib,gobject,girepository,libffi 和其他库与随附的 typelib 文件(G)中的其他元数据结合使用来访问C库(libg),并动态提供基于该信息的Python接口。

    对于要使用GNOME编写Python应用程序或使用GTK编写Python GUI应用程序的开发人员,可以使用PyGObject很方便地创建各种美观、复杂、功能强大的跨平台的GUI应用程序。

    PyGObject是一款在LGPL许可下的跨平台(支持Linux,Windows和macOS)的自由软件,其作者是著名的GNOME开发者James Henstridge。

    项目信息:

    (1)项目主页:

    (2)PyPI项目网址:

    (3)项目最新版本:v3.36.1(2020/05/07)

    6.2 PyGObject特点

    • 功能强大
    • 适合开发大型、复杂的GUI应用程序
    • 适合有GNOME/GTK+基础的开发人员
    • 对Linux系统更友好,在Windows系统安装不方便

    6.3 PyGObject典型应用

    • Pitivi-:一个免费的开源视频编辑器桌面应用程序(如下图示)

    • Anaconda -Fedora,RHEL和其他Linux发行版使用的桌面安装程序
    • D-Feet-易于使用的D-Bus调试器
    • Gaphor-一个简单的桌面建模工具
    • GNOME Music - 一个GNOME桌面音乐播放器软件

    6.4 PyGObject安装(Windows)

    在运行应用程序之前,需要先行安装PyGObject,GTK及其依赖项。

    本机在终端通过pip install PyGObject命令进行PyGObject模块安装时会报错失败,故采用其官网推荐的Windows平台安装步骤进行:

    • Step1:通过下载安装程序 m
    • Step2:运行安装程序并安装提示完成安装(如安装目录为 C:\msys64)。注:MSYS2需要64位Windows 7或更高版本。
    • Step3:按照说明设置基本环境。
    • Step4:运行 C:\msys64\mingw64.exe 后会弹出一个终端窗口
    • Step5:在本终端窗口执行 pacman -Suy
    • Step6:在本终端窗口执行 pacman -S mingw-w64-x86_64-gtk3 mingw-w64-x86_64-python3 mingw-w64-x86_64-python3-gobject

    验证测试:

    • Step1:要测试 GTK 3 是否正常运行,可以在本终端窗口运行 gtk3-demo,会出现一个演示应用程序。

    使用方法:

    • Step1:将 xxx.py 您创建的脚本复制到 C:\msys64\home\<username>
    • Step2:在本终端窗口运行 python3 xxx.py,会出现相应桌面应用程序。

    6.5 PyGObject简单示例

    一、示例代码:

    # 文件名:exam import gi gi.require_version("Gtk", "3.0") from gi.repository import Gtk window = G(title="PyGObject") window.set_size_request(400, 100) hbox = G(spacing=6) window.add(hbox) label = G("这是一个PyGObject应用程序!") (label, True, True, 0) window.show_all() window.connect("destroy", G) G()

    二、示例运行效果:



    结束语

    目前支持Python语言开发GUI应用程序的Python GUI库有几十种(详见Python Wiki页面介绍:),限于篇幅,本文仅仅是概要介绍了最值得了解(个人浅见)的5种分享给大家,算是抛砖引玉,大家可以结合实际情况选择一款适合的Python GUI库来进一步学习掌握应用。

    希望本文能对您有所帮助!喜欢的话就点个赞加关注支持一下哈:)

    责任编辑: 鲁达

    1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
    2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
    3.本站属于非营利性站点无毒无广告,请读者放心使用!

    “anaconda如何安装qt5,anaconda如何安装cv2,anaconda安装第三方库,anaconda如何安装opencv,Anaconda如何安装py”边界阅读