1. 首先安装qt6
在终端中安装qt6,pip install pyqt6 不区分大小写的
这三个应该都有的,如果没有报错在来安装,这种安装比较简单,也是同样的安装方法
2. 下载Qt Designer 一个图形用户界面设计工具
Qt Designer Download for Windows and Mac
选择Mac版
提示出现无法打开
设置搜索隐私,点击仍要打开,输入密码后,就可以安装了
安装成功
我这里就不配置在pycharm里面了
直接在启动台中打开更方便,要是需要的的话,可以按照下面的方法
3. 最重要的是UIC的配置,可以将设计好的UI界面转化为python源码
3.1 先查看pyqt6的路径
3.2 终端执行 open /Users/liu/Library/Python/3.9/lib/python/site-packages
在访达中打开
查看是否有uic这个文件目录
进入pycharm配置工具:
这三个参数:
第一个就是你的python路径 可以通过 which pyton 查看
第二个 就是运行uic程序要带的参数,包括uic的路径,源文件名,目标文件名
我这里的是默认的路径,所以参数就是
-m PyQt6.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py
第三个:就是当前目录
$ProjectFileDir$
一定要保存
4.简单测试,先设计个简单的登录
然后将保存的ui文件,保存,并放到pycharm的项目目录中,
点击菜单中的Tools -> ExternalTools -> PyUIC
就会生成一个同名的.py的文件
进入 .py文件在最后加上就可以运行了
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
Form = QtWidgets.QWidget()
ui = Ui_Form()
ui.setupUi(Form)
Form.show()
app.exec()
完整代码:
# Form implementation generated from reading ui file 'untitled.ui'
#
# Created by: PyQt6 UI code generator 6.7.0
#
# WARNING: Any manual changes made to this file will be lost when pyuic6 is
# run again. Do not edit this file unless you know what you are doing.
import sys
from PyQt6 import QtCore, QtGui, QtWidgets
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(279, 217)
self.widget = QtWidgets.QWidget(parent=Form)
self.widget.setGeometry(QtCore.QRect(12, 12, 163, 82))
self.widget.setObjectName("widget")
self.verticalLayout = QtWidgets.QVBoxLayout(self.widget)
self.verticalLayout.setContentsMargins(0, 0, 0, 0)
self.verticalLayout.setObjectName("verticalLayout")
self.label = QtWidgets.QLabel(parent=self.widget)
self.label.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter)
self.label.setObjectName("label")
self.verticalLayout.addWidget(self.label)
self.formLayout = QtWidgets.QFormLayout()
self.formLayout.setObjectName("formLayout")
self.label_2 = QtWidgets.QLabel(parent=self.widget)
self.label_2.setObjectName("label_2")
self.formLayout.setWidget(0, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_2)
self.lineEdit = QtWidgets.QLineEdit(parent=self.widget)
self.lineEdit.setObjectName("lineEdit")
self.formLayout.setWidget(0, QtWidgets.QFormLayout.ItemRole.FieldRole, self.lineEdit)
self.label_3 = QtWidgets.QLabel(parent=self.widget)
self.label_3.setObjectName("label_3")
self.formLayout.setWidget(1, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_3)
self.lineEdit_2 = QtWidgets.QLineEdit(parent=self.widget)
self.lineEdit_2.setObjectName("lineEdit_2")
self.formLayout.setWidget(1, QtWidgets.QFormLayout.ItemRole.FieldRole, self.lineEdit_2)
self.verticalLayout.addLayout(self.formLayout)
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
self.label.setText(_translate("Form", "登录"))
self.label_2.setText(_translate("Form", "账号"))
self.label_3.setText(_translate("Form", "密码"))
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
Form = QtWidgets.QWidget()
ui = Ui_Form()
ui.setupUi(Form)
Form.show()
app.exec()