vscode?配置使用pyqt5的詳細(xì)步驟
1. vscode 配置 pyqt_designer
給 vscode 安裝插件 “PYQT Integration”,點(diǎn)擊 “PYQT Integration” 插件界面的齒輪,選擇“Settings”,進(jìn)入該插件的設(shè)置頁(yè)面:

進(jìn)入以下界面:
配置1:設(shè)置 Pyuic 的路徑
Pyuic用于將GUI界面的 .ui 文件轉(zhuǎn)換為 .py 文件。
找到 “Pyqt-integration > Pyuic: Cmd”,填入安裝PyQt5的虛擬環(huán)境中Pyuic的絕對(duì)路徑,如下:
D:\data\...\venv_QT\Scripts\pyuic5
配置2:設(shè)置 QT designer 的路徑
QT designer 是 QT 用來(lái)設(shè)計(jì) GUI 的軟件,通過(guò)拖拽組件可以快速構(gòu)建GUI。
找到 " Pyqt-integration > Qtdesigner: Path ",輸入虛擬環(huán)境中QT designer的絕對(duì)路徑,如下:
D:\data\...\venv_QT\Lib\site-packages\qt5_applications\Qt\bin\designer
配置結(jié)果如下圖所示:

## 2. 創(chuàng)建 .ui 文件
在 vscode 的文件目錄下,點(diǎn)擊鼠標(biāo)右鍵,選擇“PYQT:New Form”, 創(chuàng)建 qt 的 ui 界面,自動(dòng)調(diào)用qt-designer打開(kāi)

vscode自動(dòng)調(diào)用qt-designer打開(kāi),創(chuàng)建并打開(kāi)一個(gè).ui文件,這里以創(chuàng)建 “Main Window”為例,介紹后續(xù)使用方法。

創(chuàng)建一個(gè) “Main Window”,從左側(cè)拖進(jìn)來(lái)一個(gè) button之后,“ctrl+s"保存,彈出如下對(duì)話框,保存為 .ui 文件

關(guān)閉qt-designer.
回到 vscode, 在剛剛保存的 .ui 文件上,鼠標(biāo)右鍵,

- PYQT:New Form : 用于創(chuàng)建一個(gè)新的.ui文件/界面
- PYQT:Preview: 會(huì)顯示 .ui 界面的效果
- PYQT:Edit in Designer: 用 qt-designer 重新打開(kāi) .ui 文件進(jìn)行編輯
- PYQT: Compile Form 將 .ui 文件編譯為 .py 文件,創(chuàng)建了一個(gè)python類,供后續(xù)界面功能的開(kāi)發(fā)使用。
2. 編譯 .ui 文件 得到 .py 文件
在vscode中,在上一步創(chuàng)建的 .ui 文件上,點(diǎn)擊鼠標(biāo)右鍵,選擇 ”PYQT: Compile Form“ 選項(xiàng),得到.py 文件,如下:
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'f:\_文件_\pyqt_tests\pyqt_designer_test_1\test_1.ui'
#
# Created by: PyQt5 UI code generator 5.15.9
#
# 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(640, 480)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
# 這里是對(duì)應(yīng)組件的設(shè)置
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(430, 360, 93, 28))
self.pushButton.setObjectName("pushButton")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 640, 26))
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"))3. 簡(jiǎn)單使用 .ui 定義的界面,添加槽函數(shù)
from PyQt5.QtWidgets import QApplication, QMainWindow
import sys
from Ui_test_1 import Ui_MainWindow
# 定義一個(gè)槽函數(shù)
def on_btn_ok():
print("hello world")
# 創(chuàng)建一個(gè)空界面
app = QApplication(sys.argv)
main_window = QMainWindow() # 創(chuàng)建以惡搞窗口
# 調(diào)用ui文件編譯得到的頭文件,配置main_window
ui = Ui_MainWindow() # 常見(jiàn)一個(gè)窗口配置類的類對(duì)象
ui.setupUi(main_window) # 用 ui 類裝飾 創(chuàng)建的 main_window
# 給 ui 界面中的pushButton組件添加槽函數(shù)
ui.pushButton.clicked.connect(on_btn_ok)
# 顯示窗口
main_window.show()
sys.exit(app.exec_())4. 高級(jí)使用 .ui 定義的界面
繼承 QMainWindow, 與 第三步生成的 Ui_MainWindow 類,創(chuàng)建一個(gè)新的類,管理ui界面中的所有組件,以及添加槽函數(shù)。
from PyQt5.QtWidgets import QApplication, QMainWindow
import sys
from Ui_test_1 import Ui_MainWindow
# 繼承 Ui_MainWindow 與 QMainWindow 創(chuàng)建新類
class MyMainWindow(QMainWindow,Ui_MainWindow): #這里也要記得改
def __init__(self,parent =None):
super(MyMainWindow,self).__init__(parent) # QMainWindow 初始化
self.setupUi(self) # 用 Ui_MainWindow 的 setupui 函數(shù)給 QMainWindow 添加組件
# 給QMainWindow 的組件添加槽函數(shù)
self.pushButton.clicked.connect(self.slot_on_btn_clicked)
# 定義槽函數(shù)
def slot_on_btn_clicked(self):
print("hello world!")
if __name__ == "__main__":
app = QApplication(sys.argv)
w = MyMainWindow()
w.show()
sys.exit(app.exec_())到此這篇關(guān)于vscode 配置使用pyqt5的詳細(xì)步驟的文章就介紹到這了,更多相關(guān)vscode 使用pyqt5內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python字符串分割常用方法(str.split()和正則)
在Python中字符串是一種非常常見(jiàn)的數(shù)據(jù)類型,在實(shí)際應(yīng)用中我們經(jīng)常需要對(duì)字符串進(jìn)行分割,以便對(duì)其中的內(nèi)容進(jìn)行處理,這篇文章主要給大家介紹了關(guān)于python字符串分割(str.split()和正則)的相關(guān)資料,需要的朋友可以參考下2023-11-11
Python JSON編碼/解碼庫(kù)orjson的用法詳解
orjson是一個(gè)高性能的JSON編碼/解碼庫(kù),專為Python設(shè)計(jì),使用Rust實(shí)現(xiàn),相比標(biāo)準(zhǔn)庫(kù)的json模塊和其他第三方庫(kù)(如 ujson、simplejson),orjson在速度上有顯著優(yōu)勢(shì),同時(shí)支持更豐富的原生數(shù)據(jù)類型,本文通過(guò)代碼示例給大家介紹的非常詳細(xì),需要的朋友可以參考下2025-07-07
Python驗(yàn)證用戶密碼是否規(guī)范腳本示例
對(duì)用戶密碼的強(qiáng)度進(jìn)行校驗(yàn),要求用戶密碼達(dá)到一定的強(qiáng)度,符合安全性要求,這篇文章主要給大家介紹了關(guān)于Python驗(yàn)證用戶密碼是否規(guī)范的相關(guān)資料,需要的朋友可以參考下2024-05-05
Python腳本實(shí)現(xiàn)批量發(fā)布Markdown文章
這篇文章主要為大家詳細(xì)介紹了如何使用Python腳本實(shí)現(xiàn)自動(dòng)化批量發(fā)布Markdown文章,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2026-03-03
Python 實(shí)現(xiàn)域名解析為ip的方法
今天小編就為大家分享一篇Python 實(shí)現(xiàn)域名解析為ip的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-02-02
Python程序打包成EXE的四種方法詳解與實(shí)戰(zhàn)
將Python代碼打包成可執(zhí)行文件是一種使你的應(yīng)用程序更易于分享和分發(fā)的方法,本文一步一步地教你如何用 Pyinstaller 模塊將Python程序打包成exe文件,這篇教程絕對(duì)是全網(wǎng)最全面、最詳細(xì)的教程,包含四種打包的方法,需要的朋友可以參考下2025-07-07
用python寫(xiě)的一個(gè)wordpress的采集程序
在學(xué)習(xí)python的過(guò)程中,經(jīng)過(guò)不斷的嘗試及努力,終于完成了第一個(gè)像樣的python程序,雖然還有很多需要優(yōu)化的地方,但是目前基本上實(shí)現(xiàn)了我所要求的功能,需要的朋友可以參考下2016-02-02
Python Tkinter Entry和Text的添加與使用詳解
這篇文章主要介紹了Python Tkinter Entry和Text的添加與使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03
Python?Selenium動(dòng)態(tài)渲染頁(yè)面和抓取的使用指南
在Web數(shù)據(jù)采集領(lǐng)域,動(dòng)態(tài)渲染頁(yè)面已成為現(xiàn)代網(wǎng)站的主流形式,本文將從技術(shù)原理,環(huán)境配置,核心功能系統(tǒng)講解Selenium在Python動(dòng)態(tài)爬蟲(chóng)中的應(yīng)用,需要的可以參考下2025-05-05

