【PyQt5】Qt Designer + pyuic5.exe + pyrcc5.exe 实现界面和功能代码分离

pyuic5.exe,pyrcc5.exe工具位于python安装路径的Scripts 文件夹下
Qt Designer 在制作界面时会生成两类文件,一类是界面的.ui文件,一类是保存图片的.qrc文件,需要将他们转换为python可识别的.py文件。

  • pyuic5.exe用于将.ui转为.py文件
  • pyrcc5.exe用于将.qrc转为.py文件

通过以下步骤将 pyuic5.exe pyrcc5.exe 添加到pycharm的拓展工具中
在这里插入图片描述

$ProjectFileDir$\venv\Scripts\pyuic5.exe
$FileName$ -o $FileNameWithoutAllExtensions$_ui.py -x
$FileDir$

在这里插入图片描述

$ProjectFileDir$\venv\Scripts\pyrcc5.exe
$FileName$ -o $FileNameWithoutExtension$_rc.py
$FileDir$

在这里插入图片描述

D:\Softs\QtDesigner\designer.exe
$ProjectFileDir$

在添加后即可在.ui文件右键>external tools>ui_to_py进行.ui文件的转换,.qrc类型的文件同理。
在这里插入图片描述
在这里插入图片描述
.ui文件转换的.py文件结构为 Ui_Form 类,里面保存着页面的组件以及布局代码,为了使得界面代码和功能代码分离,这个文件作为界面代码由转换工具自动生成,不进行修改(后期如果界面进行修改会重新进行.ui文件的转换,如果在这个文件类添加功能代码的话,功能代码会被覆盖)
在这里插入图片描述
功能代码则另外创建一个.py文件,并继承于 Ui_Form 类,在 init()方法中调用 self.setupUi(self),即完成了对界面代码的引用,代码如下:

	import sys
	 
	from PyQt5.QtWidgets import QApplication, QWidget
	 
	from resource.login_ui import Ui_Form
	 
	 
	class Window(QWidget, Ui_Form):
	    def __init__(self):
	        super().__init__()
	        self.setupUi(self)
	    # 功能代码这个文件内进行添加
	 
	 
	 
	if __name__ == '__main__':
	    app = QApplication(sys.argv)
	 
	    window = Window()
	    window.show()
	 
	    sys.exit(app.exec_())

执行该代码就可以运行制作好的界面,后续需要给界面添加功能代码都在这个类进行添加,从而实现了界面代码和功能代码的分离,方便项目的维护。