安装pyqt并配置Qt Designer、PyUIC和PyRcc

本设计python编程用到了pycharm,MySQL数据表的操作用的SQLyog。为了实现功能,除了下载一些下文代码所需的包,还需要安装pyqt,配置Qt Designer、PyUIC和PyRcc。

2.1 GUI与PyQt简介

使用Python开发图形界面的软件其实并不多,相对于GUI界面,可能Web方式的应用更受人欢迎。但对于像我一样对其他编程语言比如C#或WPF并不熟悉的人来说,未必不是一个好的工具。常见GUI框架如下:

(1)PyQt5:Qt是一个跨平台的 C++图形用户界面库。QT一度被诺基亚拥,后出售给芬兰的软件公司Digia Oyj。PyQt5是基于Digia公司Qt5的Python接口,由一组Python模块构成。PyQt5本身拥有超过620个类和6000函数及方法。在可以运行于多个平台,包括:Unix, Windows, and Mac OS。

(2)Pyside6:Pyside是QT公司官方提供的Python包,上一版本为Pyside2,对应的是QT5,最新版命名规则进行了调整,更改为Pyside6,对应的是QT6版本。由于官方出品的比较看好,缺点是发布比较晚,网上的资料没有PyQt5多。

(3)Tkinter:Python内置的GUI框架,使用TCL实现,Python中内嵌了TCL解释器,使用它的时候不用安装额外的扩展包,直接import,跨平台。不足之处在于UI布局全靠代码实现,只有15种常用部件,显示效果简陋。

(4)PySimpleGUI:PySimpleGUI 是 Tkinter 一层包装。使用 PySimpleGUI 实现自定义 GUI 所需的代码量要比使用 Tkinter 直接编写相同的 GUI 要少得多。

(5)WxPython:wxPython是Python语言对流行的wxWidgets跨平台GUI工具库的绑定。用得比较广泛,跨平台,C++编写,文档少,用户可能就需要根据编程内容对不同平台中的GUI代码做一些调整。遇到问题不好解决,代码布局控件,不直观。

(6)Wax:基于wxPython ,为克服wxPython的问题而制作的一个包。

(7)Kivy:主要针对多点触控程序,智能手机平板等,也可以在没有触屏功能的系统上,全平台支持(Windows, Linux, Mac OS X, Android and iOS.)使用Python和cython编写,中文支持差,需要自己下载中文库并且制定路径。

(8)BeeWare:Write once. Deploy everywhere.需要与Kivy配合使用。

(9)Toga:一个使用Python开发原生APP的GUI工具包。Toga由一个具有共享接口的基础组件库组成,以简化与平台无关的GUI开发。Toga适用于Mac OS、Windows、Linux(GTK)以及Android和iOS等移动平台。

(10)Eel:一个轻量的 Python 库,用于制作简单的类似于 Electron(但是比它更轻量) 的离线 HTML/JS GUI 应用程序,并具有对 Python 功能(capabilities)和库的完全访问权限。

(11)Flexx:一个纯 Python 工具包,用来创建图形化界面应用程序。其使用 Web 技术进行界面的渲染。你可以用 Flexx 来创建桌面应用,同时也可以导出一个应用到独立的 HTML 文档。因为使用纯 Python 开发,所以 Flexx 是跨平台的。只需要有 Python 和浏览器就可以运行。

(12)pywebview是围绕 webview 组件的轻量型跨平台包装器(wrapper),它允许在其自己的本机 GUI 窗口中显示 HTML 内容。它使您可以在桌面应用程序中使用 Web 技术,同时尽最大可能隐藏使用浏览器构建GUI的事实。

(13)enaml:一种能够让你用最小的努力就可以实现高质量GUI界面的的Python框架,也是一种独特的编程语言。enaml将声明性语言与基于约束的布局系统结合在一起,使用户可以轻松地定义灵活布局的UI。enaml应用程序可以在任何支持Python和Qt的平台上运行。

PyQt是Qt框架的Python语言实现,由Riverbank Computing开发,是最强大的GUI库之一。PyQt提供了一个设计良好的窗口控件集合,每一个PyQt控件都对应一个Qt控件,因此PyQt的API接口与Qt的API接口很接近,但PyQt不再使用QMake系统和Q_OBJECT宏。PyQt5特性如下:

(1)基于高性能的Qt的GUI控件集。

(2)能够跨平台运行在Linux、Window和Mac OS系统上。

(3)使用信号槽机制进行通信。

(4)对Qt库进行完全封装。

(5)可以使用成熟的IDE进行界面设计,并自动生成可执行的Python代码。

(6)提供一整套种类齐全的窗口控件。

PyQt5是由一系列Python模块组成,有超过620个类,6000个函数和方法,主要模块如下:

(1)QtCore:包含了核心的非 GUI 的功能。主要和时间、文件与文件夹、各种数据、流、URLs、mime 类文件、进程与线程一起使用。

(2)QtGui:包含了窗口系统、事件处理、2D 图像、基本绘画、字体和文字类。

(3)QtWidgets:包含了一系列创建桌面应用的 UI 元素。

(4)QtMultimedia:包含了处理多媒体的内容和调用摄像头 API 的类。

(5)QtBluetooth:包含了查找和连接蓝牙的类。

(6)QtNetwork:包含了网络编程的类,这些工具能让 TCP/IP 和 UDP 开发变得更加方便和可靠。

(7)QtPositioning:包含了定位的类,可以使用卫星、WiFi 甚至文本。

(8)Enginio:包含了通过客户端进入和管理 Qt Cloud 的类。

(9)QtWebSockets:包含了 WebSocket 协议的类。

(10)QtWebKit:包含了一个基 WebKit2 的 web 浏览器。

(11)QtWebKitWidgets:包含了基于 QtWidgets 的 WebKit1 的类。

(12)QtXml:包含了处理 xml 的类,提供了 SAX 和 DOM API 的工具。

(13)QtSvg:提供了显示 SVG 内容的类,Scalable Vector Graphics (SVG) 是一种是一种基于可扩展标记语言 (XML),用于描述二维矢量图形的图形格式(这句话来自于维基百科)。

(14)QtSql:提供了处理数据库的工具。

(15)QtTest:提供了测试 PyQt5 应用的工具。

2.2 pyqt

2.2.1安装

pip install PyQt5

pip install PyQt5-tools

2.2.2测试代码

import sys
from PyQt5 import QtWidgets, QtCore
app = QtWidgets.QApplication(sys.argv)
widget = QtWidgets.QWidget()
widget.resize(360,360)
widget.setWindowTitle("hello, pyqt5")
widget.show()
sys.exit(app.exec_())

2.2.3图示

其中pyqt5-tools为Qt Designer拖拽式的界面设计工具.

图2-1 cmd下载安装

图2-2 cmd下载安装

2-3 pycharm测试安装成功

2.3 配置工具

接下来需要配置Qt Designer、PyUIC和PyRcc

2.3.1配置Designer并测试Designer是否成功

Qt Designer 是通过拖拽的方式放置控件,并实时查看控件效果进行快速UI设计。这里也可以将Designer.exe直接设置为快捷键到桌面,可以直接打开界面。其新建画面如下图。

整个画面的构成内容如下

(1)左侧的“Widget Box”就是各种可以自由拖动的组件

(2)中间的“MainWindow – untitled”窗体就是画布

(3)右上方的”Object Inspector”可以查看当前ui的结构

(4)右侧中部的”Property Editor”可以设置当前选中组件的属性

(5)右下方的”Resource Browser”可以添加各种素材,比如图片,背景等等最终生成.ui文件(实质上是XML格式的文件),可直接使用,也可以通过pyuic5工具转换成.py文件。

步骤:

1、先确定designer.exe的文件位置:

E:\Anaconda\envs\cv2\Lib\site-packages\qt5_applications\Qt\bin\designer.exe

2、配置

  

3、测试成功

2.3.2 配置PyUIC并测试PyUIC是否成功

  1. 先确认PyUIC5.exe文件位置

E:\Anaconda\envs\cv2\Scripts\pyuic5.exe

2、配置PyUIC5

3、测试成功

首先通过如下新建一个界面,随便拖拽几个控件放到窗体上如下图,然后保存成*ui文件。

上图点击pyuic后自动创建一个同名的py文件说明PyUIC配置成功

2.3.3 配置PyRcc并测试PyRcc是否成功

1、查看PyRcc路径

E:\Anaconda\envs\cv2\Scripts\pyrcc5.exe

  1. 配置

$FileName$ -o $FileNameWithoutExtension$_rc.py

$FileDir$

3、测试成功

猜你喜欢

转载自blog.csdn.net/m0_63172128/article/details/125276907
今日推荐