这篇文章主要提供一些关于在Vscode平台搭建Pyside6环境的参考步骤。因为本人也是新手,所以之前在网上参考了很多资料,太多太杂了,这里不一一列举了,旨在大家一起交流学习。文章中有不对的地方欢迎指正,一起学习。希望可以帮助有需要的人!!!
注意事项:1、Vscode下载如果觉得速度太慢,可以复制下载链接后,将链接中az764295.vo.msecnd.net部分改成vscode.cdn.azure.cn即可,下方链接已经处理过。
2.Python如果觉得下载太慢可以直接复制链接去迅雷下载,会快很多。
Vscode下载链接:Vscode 1.71.0.
Python下载链接:Python 3.10.7.
软件安装选择自己后续能找到的位置,也方便后面下载插件、库等
在命令行输入:
pip install pyside6 -i https://pypi.douban.com/simple
-i https://pypi.douban.com/simple为修改下载源为豆瓣源,会快很多
在扩展安装管理器搜索Python安装即可
打开一个py文件,可以在右下角点击快速选择解释器,也可以在扩展设置中选择。
1、点击扩展中设置图标,选择扩展设置进入设置
2、在Designer:Path 项下填写qt desiner的路径,例如我安装在D:\B_Software\Python路径下,即填写
D:\B_Software\Python\Python310\Scripts\pyside6-designer.exe
3、在Rcc:Option 项下填写以下项(默认即是以下内容,在当前路径输出qrc文件转换py文件的输出,含义可以自己去扩展介绍里了解一下)
-o
${resourceDirname}${pathSeparator}${resourceBasenameNoExtension}_rc.py
在Rcc:Path 项下填写pyside6-rcc的路径,例如我安装在D:\B_Software\Python路径下,即填写
D:\B_Software\Python\Python310\Scripts\pyside6-rcc.exe
4、在Uic:Option 项下填写以下项(默认即是以下内容,在当前路径输出ui文件转换py文件的输出,含义可以自己去扩展介绍里了解一下)
-o
${resourceDirname}${pathSeparator}ui_${resourceBasenameNoExtension}.py
在Uic:Path 项下填写pyside6-uic的路径,例如我安装在D:\B_Software\Python路径下,即填写
D:\B_Software\Python\Python310\Scripts\pyside6-uic.exe
Uic:Live Execution 项下勾选则使能在线ui转py功能,每次ui文件更改保存后,会自动运行一次
如下图
在想存放的文件夹下右击鼠标,点击Creat Qt UI File:
即可打开designer工具,直接创建一个ui,保存即可:
回到vscode右击刚才创建的test.ui文件,选择Compile Qt UI File转化为py文件:
打开ui_test.py可以看到工具转化的文件内容,我们也打开designer,选择窗体–View Python code,可以看到和转化的文件一样的内容(这里也可以View C++ code看c++的版本)。
这里有个问题,一开始点击View Python code会报错,显示不出代码,在以下安装路径新建一个bin文件夹,并将路径下的rcc.exe和uic.exe以及其它非文件夹文件复制到bin文件夹(这里全部复制是因为我也不清楚需要依赖哪几个dll,反正也不大,嫌麻烦我全部复制了)
D:\B_Software\Python\Python310\Lib\site-packages\PySide6
我们可以随时右击ui文件,点击Edit Qt UI File编辑ui文件,保存后直接运行main.py即可显示(前提打开了在线转化,不然需要手动再用uic转化一下)
这里贴上main.py和Logic_code.py的代码,比较简单,也是参考网上一些代码写的
main.py
import sys
from PySide6 import QtWidgets
sys.path.append('./src') # 导入同级目录下的文件
from Logic_code import MainProcess
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = MainProcess()
MainWindow.show()
sys.exit(app.exec())
Logic_code.py
# -*-coding: utf-8 -*-
"""
@日期时间: 2022/5/3 14:52
@作者: 简单不过
@文件名:Logic_code.Py
@IDE: VsCode
"""
import time
from PySide6 import QtCore, QtWidgets, QtGui
from PySide6.QtWidgets import QMainWindow, QFileDialog, QMessageBox, QPushButton, QWidget
from ui_test import Ui_MainWindow
class MainProcess(QMainWindow, Ui_MainWindow):
def __init__(self):
super(MainProcess, self).__init__()
self.setupUi(self)
self.m_flag = None
"""
状态栏时间显示设置,创建一个Label添加为状态栏永久控件
创建一个定时器实时显示时间
"""
self.time_view = QtWidgets.QLabel(self)
self.time_view.setStyleSheet("color: white")
self.statusbar.addPermanentWidget(self.time_view)
time = QtCore.QTimer(self)
time.timeout.connect(self.showtime)
time.start()
"""
控件与函数绑定
"""
"""
控件与函数绑定
"""
def showtime(self):
datatime = QtCore.QDateTime.currentDateTime()
text = datatime.toString("yyyy-MM-dd HH:mm:ss")
self.time_view.setText(text)
def write_msg(self, information):
QMessageBox.information(None, '消息', information, QMessageBox.Ok)
"""
关闭提示
"""
def closeEvent(self, event):
quitmsg = QMessageBox()
quitmsg.setWindowTitle('确认窗口')
quitmsg.setText('是否确认退出?')
but_yes = QPushButton('确定')
but_no = QPushButton('取消')
quitmsg.addButton(but_yes, QMessageBox.YesRole)
quitmsg.addButton(but_no, QMessageBox.NoRole)
quitmsg.exec_()
if quitmsg.clickedButton() == but_yes:
event.accept()
else:
event.ignore()