PyQt入门学习笔记——GUI库对比,PyQt5安装+pyCharm配置

       放假在家颓废了快一周的时间后,由于参加了一个学校的比赛,需要完成一个风电预测的程序的封装。由于之前用python只是做一些数据计算和分析,而Web程序一般都采用C#和JAVA来实现,这次的算法代码由于是Python实现的,并且听说python GUI现在也已经十分强大。因此开了新坑,边学python界面编程边完成项目的前端界面。

在比较了以下这些GUI库:

(1)Tkinter:

绑定在Pyhon自带的GUI工具集,优点:历史最悠久, Python 事实上的标准 GUI ,著名的 IDLE 就是使用 Tkinter 实现 GUI 的创建的 GUI 简单,学起来和用起来也简单;缺点:界面较丑;

(2)wxPython:

C++编写的跨平台GUI工具集,作为Python的一个扩展模块实现;优点:比较流行的一个 Tkinter 的替代品,在 各种平台下都表现挺好。

(3)PyGTK:

一系列的 Python 对 GTK+ GUI 库的包装;缺点:在windows平台表现不太好,因为使用的是GTK的GUI库;

(4)PySide:

另一个 Python 对跨平台的 GUI 工具集 Qt 的包装,捆绑在 Python 当中,最初由 BoostC++ 库实现,后来迁移到 Shiboken。

(5)PyQt:

Python 对跨平台的 GUI 工具集 Qt 的包装实现了 440 个类以及 6000 个函数或者方法 ,PyQt 是作为 Python 的插件实现的。优点:功能很强大,跨平台的支持也不错,关键是界面很漂亮,之前用QT做过界面真是一比较才知道差距,作为外貌协会当然选择这个。

下面开始PyQt的安装:

(1)pyqt5安装:直接使用pip安装,但是需要SIP的支持,所以先安装SIP,再安装pyqt5

(2)安装qt designer:

(3)测试是否安装成功,输入一下代码:

from PyQt5 import QtWidgets, QtGui
import sys

app = QtWidgets.QApplication(sys.argv)
window = QtWidgets.QWidget();
window.show()

如果不报错,并显示出窗口,则安装成功:

 

(4)为PyQt5添加环境变量:

根据自己安装的pyqt位置路径设置

配置PyCharm:

打开PyCharm,在创建的项目中点击settings,Tools——External Tools:

先设置qtdesigner的参数,在Program中添加自己的qtdesigner.exe的安装路径:D:\Anaconda\envs\tensorflow\Lib\site-packages\pyqt5_tools\designer.exe,后面设置可以相同:

再点加号,设置pyuic5的参数,是把qt的UI文件转换成.py的工具,Program: D:\Anaconda\envs\tensorflow\Scripts\pyuic5.exe.arguments:$FileName$ -o $FileNameWithoutExtension$.py ,working directory:$FileDir$,

最后设置pyrcc5的参数,这个是将资源文件如图片等转成python代码能识别的文件,Program:D:\Anaconda\envs\tensorflow\Scripts\pyrcc5.exe;arguments:$FileName$ -o $FileNameWithoutExtension$.py ,working directory:$FileDir$。pyrcc5和pyuic5的参数设置几乎相同:

点击上方工具栏中的Tools,显示出工具,配置基本完成了:

将QtDesigner做的界面ui转换为py并导入ycharm的Python项目中:

直接打开Qt Designer:

将其保存到python工程项目的目录下:

点击保存好的ui文件,右键选择External Tools->pyuic5,将其转换为py文件:

导入该py模块,调用转换成功的py文件:

import sys
from PyQt5 import QtWidgets, QtGui
from PyQt5.QtWidgets import QApplication, QMainWindow
import QtTest
app = QApplication(sys.argv)
MainWindow = QMainWindow()
ui=QtTest.Ui_QtWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())

运行结果:

是不是很简单呢,只是我还不怎么会Qt的操作,几乎和C#差不多,继续冲鸭。

猜你喜欢

转载自blog.csdn.net/weixin_39626452/article/details/86616185