前言
这篇博客用来记录qfluentwidgets组件库的基本使用。
如果你愿意花200块钱去官网github地址买一份作者的组件库,添加到了designer中了。那么本博客前面的所有配置对你都是没有用的,花钱能解决一切问题。
如果不想花钱那就要废一点手脚了,主要是将组件添加到designer中去。
一、安装
参考视频:视频中还涉及到自己写一个c++程序编译成exe文件,这些都已经做好了我,只要我下面那个安装包就可以解决,下次安装就不用这么复杂了。
1 安装conda环境
- 富哥们:
conda create -n 名字 python = 3.8,10
conda activate 名字
pip install PyQt-Fluent-Widgets -i https://pypi.org/simple/ # 这行命令上官网去找
pip install pyqt5-tools
有钱的哥们花200块钱买作者那个软件这样就可以安装好了可以进行开发了,但是遗憾的是新版的qfluentwidgets先在已经不在对外提供 designer.py文件可以将组件加到designer中了。
- 穷哥们
直接将以前我开发过的一个环境打包解压放在 envs 文件夹下用就可以了。
【注】:因为里面有一部需要写一个C++程序编译成exe文件,里面用的是绝对路径,所以要求anaconda文件夹必须安装在D盘根目录下。(这个编译的代码如果路径不对就需要自己调了)
按照这个上面路径是绝对没有问题的。(压缩包需要可以评论留言)
2 配置designer和pyuic
pycharm直接切换到上面的环境,通过外部工具添加就可以了。
3 查看是否成功
可以看到多了很多其他组件。
pyuic也验证一下就可以了。
二、简单使用
使用方式和基本的PyQt5类似。主界面继承的窗口我们可以换成qfluentwidgets,里面的FramelessWindow更加美观。
另外,不是说用了qfluentwidgets的组件,PyQt5的组件就不可以用了,完全是可以混合用的。
下面是一个简单的搭建代码(具体组件的动作方法哪些就需要去慢慢积累查阅文档了)
ui设计如下
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'testWindow.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_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(872, 711)
self.verticalLayout_3 = QtWidgets.QVBoxLayout(Form)
self.verticalLayout_3.setObjectName("verticalLayout_3")
self.CommandBar = CommandBar(Form)
self.CommandBar.setObjectName("CommandBar")
self.verticalLayout_3.addWidget(self.CommandBar)
self.horizontalLayout = QtWidgets.QHBoxLayout()
self.horizontalLayout.setObjectName("horizontalLayout")
self.verticalLayout = QtWidgets.QVBoxLayout()
self.verticalLayout.setObjectName("verticalLayout")
self.StrongBodyLabel_3 = StrongBodyLabel(Form)
self.StrongBodyLabel_3.setProperty("lightColor", QtGui.QColor(0, 0, 0, 78))
self.StrongBodyLabel_3.setObjectName("StrongBodyLabel_3")
self.verticalLayout.addWidget(self.StrongBodyLabel_3)
self.TreeView_2 = TreeView(Form)
self.TreeView_2.setObjectName("TreeView_2")
self.verticalLayout.addWidget(self.TreeView_2)
self.horizontalLayout.addLayout(self.verticalLayout)
self.verticalLayout_2 = QtWidgets.QVBoxLayout()
self.verticalLayout_2.setObjectName("verticalLayout_2")
self.StrongBodyLabel_2 = StrongBodyLabel(Form)
self.StrongBodyLabel_2.setProperty("lightColor", QtGui.QColor(0, 0, 0, 78))
self.StrongBodyLabel_2.setObjectName("StrongBodyLabel_2")
self.verticalLayout_2.addWidget(self.StrongBodyLabel_2)
self.TextEdit = TextEdit(Form)
self.TextEdit.setObjectName("TextEdit")
self.verticalLayout_2.addWidget(self.TextEdit)
self.horizontalLayout.addLayout(self.verticalLayout_2)
self.verticalLayout_3.addLayout(self.horizontalLayout)
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
self.StrongBodyLabel_3.setText(_translate("Form", "文件"))
self.StrongBodyLabel_2.setText(_translate("Form", "仿真运行"))
from qfluentwidgets import CommandBar, StrongBodyLabel, TextEdit, TreeView
# !/usr/bin/env python
# _*_coding: utf-8 _*_
# @Time : 2024/10/1 17:41
# @Author : JU HE
# @Version: V0.1
# @File : mainWindow.py
# @Email : 13966915864@163.com
# @desc : 添加描述
from PyQt5.QtCore import Qt
import sys
from PyQt5.QtWidgets import QApplication,QWidget
from qfluentwidgets.components.widgets.frameless_window import FramelessWindow
from testWindow import Ui_Form
class mainWindow(FramelessWindow):
def __init__(self):
super().__init__()
self.ui = Ui_Form()
self.ui.setupUi(self)
if __name__ == '__main__':
# 高分屏适配
QApplication.setHighDpiScaleFactorRoundingPolicy(
Qt.HighDpiScaleFactorRoundingPolicy.PassThrough)
QApplication.setAttribute(Qt.AA_EnableHighDpiScaling)
QApplication.setAttribute(Qt.AA_UseHighDpiPixmaps)
app = QApplication(sys.argv)
window = mainWindow()
window.show()
sys.exit(app.exec_())
最终效果如上,还是比较简单的,在加上css一下效果就上了了。目前这个还没有设置css啊。