Windows 10 + pycharm 2022.2 + python 3.9.6
pip install PyQt5 5.15.4
pip install pyqt5-tools 5.15.4.3.2
具体方法:Flie ⇒ \Rightarrow ⇒ Settings ⇒ \Rightarrow ⇒ Tools ⇒ \Rightarrow ⇒ External Tools ⇒ \Rightarrow ⇒
点击左上角 + 号,配置如下:
Name :QtDesigner
Program : D:\PythonProgram\learnPy\venv\Lib\site-packages\qt5_applications\Qt\bin\designer.exe
(program填你自己designer.exe的路径)
Arguments : $ProjectFileDir$
Working directory: $FileDir$
Name :PyUIC
Description: 将Qt Designer生成的界面文件(后缀为.ui)转换成指定的格式
Program :D:\PythonProgram\learnPy\venv\Scripts\pyuic5.exe
(program填你自己pyuic5.exe的路径)
Arguments :$FileName$ -o $FileNameWithoutExtension$.py
Working directory: $ProjectFileDir$
Name :PyRCC
Program :D:\PythonProgram\learnPy\venv\Scripts\pyrcc5.exe
(program填你自己pyrcc5.exe的路径)
Arguments :$FileName$ -o $FileNameWithoutExtension$_rc.py
Working directory: $FileDir$
点击菜单栏 Tools 或者单击鼠标右键
找到 External Tools 如下:
单击 QtDesigner:
出现QtDesigner的界面:
如果出现以下错误直接点cancel就可以了,不影响后续操作
右键点击,之后使用PyUIC将 ui 文件 转换为 py 文件
使用 PyQt 创建一个简单的 GUI 应用程序涉及以下步骤 −
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
def window():
app = QApplication(sys.argv)
w = QWidget()
b = QLabel(w)
b.setText("Hello World!")
w.setGeometry(100,100,200,50)
b.move(50,20)
w.setWindowTitle("PyQt5")
w.show()
sys.exit(app.exec_())
if __name__ == '__main__':
window()
也可以开发上述代码的面向对象的解决方案。
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
class window(QWidget):
def __init__(self, parent = None):
super(window, self).__init__(parent)
self.resize(200,50)
self.setWindowTitle("PyQt5")
self.label = QLabel(self)
self.label.setText("Hello World")
font = QFont()
font.setFamily("Arial")
font.setPointSize(16)
self.label.setFont(font)
self.label.move(50,20)
def main():
app = QApplication(sys.argv)
ex = window()
ex.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
这种方法较为常用。
import sys
from PyQt5.QtWidgets import QDialog, QApplication
from maindlg import Ui_Dialog
# 注意:ui界面文件是个对话框,那么MyApp就必须继承 QDialog
# 类似的,若ui界面文件是个MainWindow,那么MyApp就必须继承 QMainWindow
class MyApp(QDialog, Ui_Dialog):
def __init__(self):
super().__init__()
self.setupUi(self) # 设置界面
self.btn.clicked.connect(self.sayHi) # 绑定点击信号和槽函数
def sayHi(self): # click对应的槽函数
print("hi")
if __name__ == "__main__":
app = QApplication(sys.argv)
myapp = MyApp()
myapp.show()
sys.exit(app.exec_())
from PyQt5 import QtWidgets, uic
from PyQt5.QtWidgets import QApplication
import sys
# 注意:ui界面文件是个对话框,那么MyApp就必须继承 QDialog
# 类似的,若ui界面文件是个MainWindow,那么MyApp就必须继承 QMainWindow
class MyApp(QtWidgets.QDialog):
def __init__(self):
super().__init__()
uic.loadUi('maindlg.ui', self)
# 绑定按钮的点击信号和对应的槽函数
self.btn.clicked.connect(self.sayHi)
# 槽函数
def sayHi(self):
print("hi")
if __name__ == "__main__":
app = QApplication(sys.argv)
myapp = MyApp()
myapp.show()
sys.exit(app.exec_())
pyqt5-tools 目前仅支持到 python 3.9 如果你想使用 QtDesigner 还是多下一个 python 版本吧
配置Pycharm External Tool的时候,要按照PyUIC的相关语法来写,否则会出错(直接复制本文的没有问题)。
配置Pycharm External Tool的路径一定是你自己的下载路径。
如果你在前后端分离开发时导入loadUiType包找不到的提示,那么原因可能是同时安装了PyQt5和PyQt5-stubs,删除PyQt5-stubs即可
如果你出现了关于 import resource_rc
的问题,使用 PyRCC 工具将你的 qrc 资源文件转换为 py 文件
Process finished with exit code -1073740791 (0xC0000409) -》显卡内存不足。一般出现问题的情况是:注意看是不是循环里面没有退出,导致一直循环最终内存爆掉。
Cannot find reference 'uic' in '__init__.pyi'
可以看作是pycharm的问题,就是代码包写的不规范导致找不到。(但是程序可以正常跑,可以不用管)
(139条消息) Python+PyQt5+QtDesigner+PyUic+PyRcc(最全安装教程)_sever默默的博客-CSDN博客_pyrcc
Qt Designer怎样加入资源文件 - nookia - 博客园 (cnblogs.com)
PyCharm+QTDesigner+PyUIC使用教程 - 诸子流 - 博客园 (cnblogs.com)
Qt Designer怎样加入资源文件 - nookia - 博客园 (cnblogs.com)
PyCharm+QTDesigner+PyUIC使用教程 - 诸子流 - 博客园 (cnblogs.com)