1: IDEA配置python
① 安装python插件 File->Settings…->Plugins,在里面搜索python
② 点击工具栏中的File->New->Project,可以看到左边的项目类型中多了一个python
2: pip换源 参考: https://blog.csdn.net/qq_14994573/article/details/80934201
windows下,直接在user目录中创建一个pip目录,如:C:\Users\xx\pip,新建文件pip.ini,内容如下
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
更简单点,在Windows下可以: pip config set global.index-https://pypi.tuna.tsinghua.edu.cn/simple
3 安装pyqt5 参考:https://blog.csdn.net/zrt8019/article/details/102418472
① pip install PyQt5 -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
②安装 pip install PyQt5-tools -i http://pypi.douban.com/simple --trusted-host=pypi.douban.com
③ 在site-packages全局搜索 designer.exe(就看一下位置)
然后设置IDEA集成QtDesigner IDEA file–>setting–>tools—>External Tools–>点加号(弹出CreateTool)
Name : QtDesigner
Program: C:\Software\Python37\Lib\site-packages\qt5_applications\Qt\bin(designer.exe的路径)
Arguments: (空着)
Working directory: F i l e D i r FileDir FileDir
设置PyUIC 将ui转py文件工具(这样生成的py和ui文件在同一个目录下)
Name :ui–>py
Program: C:\Software\Python37\python.exe(python.exe的路径)
Arguments: -m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py
(我写的是 -m PyQt5.uic.pyuic $FileName$ -o py\Ui_$FileNameWithoutExtension$.py
提前在ui的目录下创建py目录)
Working directory:$FileDir$
4: 测试
① 使用刚才添加好的工具 Tools --> External Tools–>QtDesigner
② 创建一个widge上面拉两个pushButton,一个Label(不用改名字)
③ 使用PyUIC将.ui生成.py(选取.ui文件右键External Tools–>ui->py)
④代码 (除了改一下路径,其他直接运行即可)
import sys
from PyQt5 import QtWidgets
from PyQt5.QtCore import pyqtSlot
from PyQt5.QtWidgets import QMainWindow
#这个路径就是由ui文件生成py文件的路径
from ui.ui_design import Ui_Form
class Main(QMainWindow):
def __init__(self, parent=None):
super().__init__(parent)
# Ui_MainWindow 界面路径
self.ui = Ui_Form()
self.ui.setupUi(self)
#绑定槽函数
self.ui.pushButton.clicked.connect(self._pushButton_Clicked)
def _pushButton_Clicked(self):
print('button2 clicked')
self.ui.label.setText('button2 clicked')
#注解方式绑定槽函数
@pyqtSlot()
def on_pushButton_2_clicked(self):
print('按下按钮')
self.ui.label.setText('按钮1 被按下')
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
main = Main()
main.show()
sys.exit(app.exec_())
5, 前后端彻底分离 动态加载ui 参考:https://blog.csdn.net/lishan132/article/details/112602371 (我没试过)