放假在家颓废了快一周的时间后,由于参加了一个学校的比赛,需要完成一个风电预测的程序的封装。由于之前用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#差不多,继续冲鸭。