1.首先使用pip下载两个pyqt5的
pip install PyQt5
pip install PyQt5-tools
ps:这两个包比较大,建议使用国内镜像源。
2.然后在vscode中下载安装插件pyqt integration
3.新建一个py文件,右键这个文件发现这两个选项,就说明插件安装成功
4.点这个PYQT:New Form之前,需要先配置下自己的QT环境。
步骤一中下载的两个包,其中一个包含QT designer,这个是设计软件界面的一个开源软件,需要在vscode中这个插件配置中设置下路径。
需要设置两个选项,默认安装pip的那两个包的话,路径类似这样
5.设置完成之后,在vscode中右键之前新建的python文件,点击PYQT:New Form
会自动新建一个叫untitled.ui的文件并会自动打开QT designer软件。
6.在QT designer设计完成界面后,保存后再切换到vscode中,右键这个untitled.ui文件,点击PYQT:Compile Form
会自动生成一个Ui_untitled.py的文件,说明开发环境已经配置完成。
配置完成之后,可以参考下以下示例(点击按钮在文本框中输出一个hello world):
1.首先新建一个python文件,名字随便起,我这就叫demo.py好了。
2.内容先可以不用写,直接可以右键新建一个ui工程。
右键这个py文件,会出现如下
点这个PYQT:New Form,然后会自动打开一个QT designer的应用程序
直接选Main Window,然后点Creat就好
然后再按照我们之前说得,要有一个文本框,一个按钮,随便先拖一个出来
然后保存,切换到vscode中
此时vscode中应该有了一个.ui的文件
右键这个文件,如下
点这个PYQT:Compile Form,右下角会提示成功,并且会多出一个py文件
打开这个py工程,就会发现这个就是我们刚刚在QT DESIGN中设计的界面类。
然后我们就可以编写主函数了
代码如下
#coding = 'utf-8'
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
import Ui_untitled
import time
#demo
def buttonClicked(girl):
girl.textBrowser.append("hello world")
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_untitled.Ui_MainWindow()
ui.setupUi(MainWindow)
ui.pushButton.clicked.connect(lambda:buttonClicked(ui))
MainWindow.show()
sys.exit(app.exec_())
自动生成的ui代码如下:
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'c:\My_World\gitee_code\qt_toolkit\untitled.ui'
#
# Created by: PyQt5 UI code generator 5.15.0
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again. Do not edit this file unless you know what you are doing.
from PyQt5 import QtCore, QtGui, QtWidgets
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.textBrowser = QtWidgets.QTextBrowser(self.centralwidget)
self.textBrowser.setGeometry(QtCore.QRect(160, 110, 256, 192))
self.textBrowser.setObjectName("textBrowser")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(570, 190, 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"))