pyqt5环境搭建
一、环境安装
(一)包下载安装
1、创建虚拟环境
使用anaconda创建一个虚拟环境:
(base) C:\Users\Administrator>conda create -n pyqt5_study python==3.5.2
2、安装pyqt5
(pyqt5_study) E:\python\pip-18.1>pip install PyQt5 -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
3、安装pyqt5-tools
(pyqt5_study) E:\python\pip-18.1>pip install pyqt5-tools -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
之所以安装这个包,是因为我们需要使用它的QtDesigner。
(二)PyCharm中进行配置
1、配置虚拟环境
在创建项目时,指定项目的虚拟环境。
2、配置QtDesigner
在File-->Settings-->Tools-->External Tools中添加工具:
3、配置PyUIC
这个是将上面QtDesigner工具产生的ui文件转成py文件:
Arguments:
-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py
二、测试
(一)代码编写
from PyQt5.QtWidgets import QApplication,QWidget import sys if __name__ == '__main__': app = QApplication(sys.argv) #创建QApplication类的实例 w = QWidget() #创建一个窗口 w.resize(500,300) #设置窗口的尺寸 w.move(400,400) #移动窗口 w.setWindowTitle('桌面应用') #设置窗口的标题 w.show() #显示窗口 sys.exit(app.exec_()) #进入程序主循环,窗口不会关闭,并且exit函数确保主循环安全退出
运行:
这里面涉及两个很重要的类需要导入就是QApplication和QWidget,下面是用图形化的方式完成测试。
(二)QtDesigner编写
1、启动QtDesigner
界面如下图所示:
新建一个MainWindow并且拖动一个组件:
然后将其保存成ui文件。
2、转成py文件
需要在转成的py文件加入以下内容才能运行:
import sys if __name__ == '__main__': app = QtWidgets.QApplication(sys.argv) MainWindow = QtWidgets.QMainWindow() ui = Ui_MainWindow() ui.setupUi(MainWindow) MainWindow.show() sys.exit(app.exec_())
# -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'test.ui' # # Created by: PyQt5 UI code generator 5.13.0 # # WARNING! All changes made in this file will be lost! from PyQt5 import QtCore, QtGui, QtWidgets import sys class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(800, 600) self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.pushButton = QtWidgets.QPushButton(self.centralwidget) self.pushButton.setGeometry(QtCore.QRect(220, 180, 75, 23)) self.pushButton.setObjectName("pushButton") MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtWidgets.QMenuBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 23)) self.menubar.setObjectName("menubar") MainWindow.setMenuBar(self.menubar) self.statusbar = QtWidgets.QStatusBar(MainWindow) self.statusbar.setObjectName("statusbar") MainWindow.setStatusBar(self.statusbar) self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): _translate = QtCore.QCoreApplication.translate MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) self.pushButton.setText(_translate("MainWindow", "PushButton")) if __name__ == '__main__': app = QtWidgets.QApplication(sys.argv) MainWindow = QtWidgets.QMainWindow() ui = Ui_MainWindow() ui.setupUi(MainWindow) MainWindow.show() sys.exit(app.exec_())
作者:iveBoy
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。