点击保存,选择保存路径(一般为你的项目目录下)。保存之后,你就会发现项目下多了一个以.ui结尾的文件。
点击该.ui文件(注意一定要点击一下)。然后选择 工具 -> Exteneral Tools -> PyUIC .
注意:PyUIC同样并非PyCharm自带,需要自行安装,可以参考上面博客:PyCharm安装PyQt5及其工具(Qt Designer、PyUIC、PyRcc)详细教程
运行之后,你会发现,ui文件下多了一个同样名字的.py文件,这个就是工具为我们自动生成的代码。只需要在下方添加如下代码,就可以运行查看效果:
生成的代码:
添加如下代码:
import sys
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
widgets = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(widgets)
widgets.show()
sys.exit(app.exec_())
运行效果:
这就是PyQt编写UI界面的基本流程了,本项目的UI界面的布局基本上都是根据这种方式编写出来的。
2、项目UI基础
这里仅展示用户主界面的代码,更多代码可以参考本项目GitHub地址:
项目的初始界面如下:
项目的初始代码如下:
注意:按钮旁边的图标使用了qtawesome库,需要自行下载,下载可参考博客:Qt5开发工具—常用Qt5开发工具
# -*- coding: utf-8 -*-
import sys
import qtawesome
from PyQt5 import QtCore, QtWidgets
from PyQt5.QtCore import Qt
from PyQt5.QtGui import *
class UserMainUi(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("UserMainWindow")
MainWindow.resize(1200, 800)
# ------------ 整体界面设计,使用网格布局 ------------ #
self.main_widget = QtWidgets.QWidget(MainWindow) # 创建窗口主部件
self.main_layout = QtWidgets.QGridLayout() # 创建主部件的网格布局
self.main_widget.setLayout(self.main_layout) # 设置窗口主部件布局为网格布局
self.left_widget = QtWidgets.QWidget(MainWindow) # 创建左侧部件
self.left_widget.setObjectName('left_widget')
self.left_layout = QtWidgets.QGridLayout()
self.left_widget.setLayout(self.left_layout) # 设置左侧部件布局为网格
self.right_widget = QtWidgets.QWidget(MainWindow) # 创建右侧部件
self.right_widget.setObjectName('right_widget')
self.right_layout = QtWidgets.QGridLayout()
self.right_widget.setLayout(self.right_layout) # 设置右侧部件布局为网格
self.main_layout.addWidget(self.left_widget, 0, 0, 15, 2) # 左侧部件在第0行第0列,占15行2列
self.main_layout.addWidget(self.right_widget, 0, 2, 15, 10) # 右侧部件在第0行第2列,占15行10列
MainWindow.setCentralWidget(self.main_widget) # 设置窗口主部件
# ------------ 左侧菜单模块,使用网格布局 ------------ #
# 关闭按钮
self.close_button = QtWidgets.QPushButton("")
# 空白按钮
self.other_button = QtWidgets.QPushButton("")
# 最小化按钮
self.minimize_button = QtWidgets.QPushButton("")
# JUNIOR 标志
self.left_label_1 = QtWidgets.QPushButton("JUNIOR")
self.left_label_1.setObjectName('left_label')
# SENIOR 标志
self.left_label_2 = QtWidgets.QPushButton("SENIOR")
self.left_label_2.setObjectName('left_label')
# 打开摄像头 按钮
self.camera_button = QtWidgets.QPushButton(qtawesome.icon('fa5s.video', color='white'), "打开相机")
self.camera_button.setObjectName('left_button')
# 用户登录 按钮
self.login_button = QtWidgets.QPushButton(qtawesome.icon('fa5s.user-alt', color='white'), "用户登录")
self.logi