当前位置:   article > 正文

Python | 人脸识别系统 — UI界面设计_python设计人脸识别界面

python设计人脸识别界面

博客汇总:Python | 人脸识别系统 — 博客索引

GitHub地址:Su-Face-Recognition

注:阅读本博客前请先参考

工具安装、环境配置:Python | 人脸识别系统 — 简介

一、UI界面编写

1、基础使用

        本项目采用PyQt库作为UI界面的编写,使用Qt-Designer、PyUIC自动生成UI界面代码。

关于PyQt库的详细使用可以参考该系列博客:

1、PyQt基础教程

2、使用PyQt开发图形界面Python应用专栏目录

        打开PyCharm,选择 工具 -> External Tools -> Qt-Designal .

注意:Qt-Designer并非PyCharm自带,需要自行安装,可以参考博客:PyCharm安装PyQt5及其工具(Qt Designer、PyUIC、PyRcc)详细教程

         打开工具后,选择 MainWindow ,点击创建。

         从界面左端选择你需要的组件,拖到工作区内,选择好布局。

        双击组件,可以修改需要显示的内容,如“按钮1”

         在界面右端修改组件名。工具默认组件名为“组件类型+数字”,这样你在输出代码的时候就不知道这个组件是干什么用的了。建议修改组件为“组件功能+组件类型”,如 login_button

         点击保存,选择保存路径(一般为你的项目目录下)。保存之后,你就会发现项目下多了一个以.ui结尾的文件。

​         点击该.ui文件(注意一定要点击一下)。然后选择 工具 -> Exteneral Tools -> PyUIC .

注意:PyUIC同样并非PyCharm自带,需要自行安装,可以参考上面博客:PyCharm安装PyQt5及其工具(Qt Designer、PyUIC、PyRcc)详细教程

​         运行之后,你会发现,ui文件下多了一个同样名字的.py文件,这个就是工具为我们自动生成的代码。只需要在下方添加如下代码,就可以运行查看效果:

​         生成的代码:

​         添加如下代码:

  1. import sys
  2. if __name__ == '__main__':
  3. app = QtWidgets.QApplication(sys.argv)
  4. widgets = QtWidgets.QMainWindow()
  5. ui = Ui_MainWindow()
  6. ui.setupUi(widgets)
  7. widgets.show()
  8. sys.exit(app.exec_())

        运行效果:

​         这就是PyQt编写UI界面的基本流程了,本项目的UI界面的布局基本上都是根据这种方式编写出来的。

2、项目UI基础

这里仅展示用户主界面的代码,更多代码可以参考本项目GitHub地址:

        项目的初始界面如下:

​         项目的初始代码如下:

 注意:按钮旁边的图标使用了qtawesome库,需要自行下载,下载可参考博客:Qt5开发工具---常用Qt5开发工具

  1. # -*- coding: utf-8 -*-
  2. import sys
  3. import qtawesome
  4. from PyQt5 import QtCore, QtWidgets
  5. from PyQt5.QtCore import Qt
  6. from PyQt5.QtGui import *
  7. class UserMainUi(object):
  8. def setupUi(self, MainWindow):
  9. MainWindow.setObjectName("UserMainWindow")
  10. MainWindow.resize(1200, 800)
  11. # ------------ 整体界面设计,使用网格布局 ------------ #
  12. self.main_widget = QtWidgets.QWidget(MainWindow) # 创建窗口主部件
  13. self.main_layout = QtWidgets.QGridLayout() # 创建主部件的网格布局
  14. self.main_widget.setLayout(self.main_layout) # 设置窗口主部件布局为网格布局
  15. self.left_widget = QtWidgets.QWidget(MainWindow) # 创建左侧部件
  16. self.left_widget.setObjectName('left_widget')
  17. self.left_layout = QtWidgets.QGridLayout()
  18. self.left_widget.setLayout(self.left_layout) # 设置左侧部件布局为网格
  19. self.right_widget = QtWidgets.QWidget(MainWindow) # 创建右侧部件
  20. self.right_widget.setObjectName('right_widget')
  21. self.right_layout = QtWidgets.QGridLayout()
  22. self.right_widget.setLayout(self.right_layout) # 设置右侧部件布局为网格
  23. self.main_layout.addWidget(self.left_widget, 0, 0, 15, 2) # 左侧部件在第0行第0列,占15行2列
  24. self.main_layout.addWidget(self.right_widget, 0, 2, 15, 10) # 右侧部件在第0行第2列,占15行10列
  25. MainWindow.setCentralWidget(self.main_widget) # 设置窗口主部件
  26. # ------------ 左侧菜单模块,使用网格布局 ------------ #
  27. # 关闭按钮
  28. self.close_button = QtWidgets.QPushButton("")
  29. # 空白按钮
  30. self.other_button = QtWidgets.QPushButton("")
  31. # 最小化按钮
  32. self.minimize_button = QtWidgets.QPushButton("")
  33. # JUNIOR 标志
  34. self.left_label_1 = QtWidgets.QPushButton("JUNIOR")
  35. self.left_label_1.setObjectName('left_label')
  36. # SENIOR 标志
  37. self.left_label_2 = QtWidgets.QPushButton("SENIOR")
  38. self.left_label_2.setObjectName('left_label')
  39. # 打开摄像头 按钮
  40. self.camera_button = QtWidgets.QPushButton(qtawesome.icon('fa5s.video', color='white'), "打开相机")
  41. self.camera_button.setObjectName('left_button')
  42. # 用户登录 按钮
  43. self.login_button = QtWidgets.QPushButton(qtawesome.icon('fa5s.user-alt', color='white'), "用户登录")
  44. self.login_button.setObjectName('left_button')
  45. # 用户登出 按钮
  46. self.logout_button = QtWidgets.QPushButton(qtawesome.icon('fa5s.sign-out-alt', color='white'), "用户登出")
  47. self.logout_button.setObjectName('left_button')
  48. # 用户注册 按钮
  49. self.register_button = QtWidgets.QPushButton(qtawesome.icon('fa5s.user-plus', color='white'), "用户注册")
  50. self.register_button.setObjectName('left_button')
  51. # 查询用户 按钮
  52. self.query_user_button = QtWidgets.QPushButton(qtawesome.icon('fa5s.search', color='white'), "修改信息")
  53. self.query_user_button.setObjectName('left_button')
  54. # 人脸识别 按钮
  55. self.recognition_button = QtWidgets.QPushButton(qtawesome.icon('fa5s.eye', color='white'), "人脸识别")
  56. self.recognition_button.setObjectName('left_button')
  57. # 人脸对比 按钮
  58. self.face_compare_button = QtWidgets.QPushButton(qtawesome.icon('fa5s.people-arrows', color='white'),
  59. "人脸对比")
  60. self.face_compare_button.setObjectName('left_button')
  61. # 活体检测 按钮
  62. self.biopsy_testing_button = QtWidgets.QPushButton(qtawesome.icon('fa5s.atom', color='white'), "活体检测")
  63. self.biopsy_testing_button.setObjectName('left_button')
  64. # 精细分割 按钮
  65. self.fine_segmentation_button = QtWidgets.QPushButton(qtawesome.icon('fa5s.cut', color='white'), "精细分割")
  66. self.fine_segmentation_button.setObjectName('left_button')
  67. # 关键点检测 按钮
  68. self.attitude_detection_button = QtWidgets.QPushButton(qtawesome.icon('fa5s.draw-polygon', color='white'),
  69. "姿态检测")
  70. self.attitude_detection_button.setObjectName('left_button')
  71. # 添加左侧按钮
  72. self.left_layout.addWidget(self.close_button, 0, 0, 1, 1)
  73. self.left_layout.addWidget(self.minimize_button, 0, 2, 1, 1)
  74. self.left_layout.addWidget(self.other_button, 0, 1, 1, 1)
  75. self.left_layout.addWidget(self.left_label_1, 1, 0, 1, 3)
  76. self.left_layout.addWidget(self.camera_button, 2, 0, 1, 3)
  77. self.left_layout.addWidget(self.login_button, 3, 0, 1, 3)
  78. self.left_layout.addWidget(self.logout_button, 4, 0, 1, 3)
  79. self.left_layout.addWidget(self.register_button, 5, 0, 1, 3)
  80. self.left_layout.addWidget(self.query_user_button, 6, 0, 1, 3)
  81. self.left_layout.addWidget(self.left_label_2, 7, 0, 1, 3)
  82. self.left_layout.addWidget(self.recognition_button, 8, 0, 1, 3)
  83. self.left_layout.addWidget(self.biopsy_testing_button, 9, 0, 1, 3)
  84. self.left_layout.addWidget(self.face_compare_button, 10, 0, 1, 3)
  85. self.left_layout.addWidget(self.fine_segmentation_button, 11, 0, 1, 3)
  86. self.left_layout.addWidget(self.attitude_detection_button, 12, 0, 1, 3)
  87. # ------------ 右侧模块,使用网格布局 ------------ #
  88. # 摄像头展示部分
  89. self.camera_label = QtWidgets.QLabel('\n人脸识别\n\n系统')
  90. self.camera_label.setAlignment(Qt.AlignCenter)
  91. self.camera_label.setObjectName('camera_label')
  92. # 信息展示界面
  93. self.img_label_1 = QtWidgets.QLabel('')
  94. self.img_label_2 = QtWidgets.QLabel('')
  95. self.img_label_3 = QtWidgets.QLabel('')
  96. self.msg_label_1 = QtWidgets.QLabel('')
  97. self.msg_label_2 = QtWidgets.QLabel('')
  98. self.msg_label_3 = QtWidgets.QLabel('')
  99. self.remind_label = QtWidgets.QLabel('')
  100. self.right_layout.addWidget(self.camera_label, 1, 0, 3, 10)
  101. self.right_layout.addWidget(self.img_label_1, 5, 1, )
  102. self.right_layout.addWidget(self.img_label_2, 5, 3, )
  103. self.right_layout.addWidget(self.img_label_3, 5, 5, )
  104. self.right_layout.addWidget(self.msg_label_1, 5, 2, )
  105. self.right_layout.addWidget(self.msg_label_2, 5, 4, )
  106. self.right_layout.addWidget(self.msg_label_3, 5, 6, )
  107. self.right_layout.addWidget(self.remind_label, 5, 3, )
  108. self.camera_label.setMinimumSize(QtCore.QSize(900, 560))
  109. self.camera_label.setMaximumSize(QtCore.QSize(900, 560))
  110. labels = [self.img_label_1, self.msg_label_1,
  111. self.img_label_2, self.msg_label_2,
  112. self.img_label_3, self.msg_label_3]
  113. for label in labels:
  114. label.setMinimumSize(QtCore.QSize(150, 200))
  115. label.setMaximumSize(QtCore.QSize(150, 200))
  116. self.remind_label.setMinimumSize(QtCore.QSize(170, 200))
  117. self.remind_label.setMaximumSize(QtCore.QSize(170, 200))
  118. if __name__ == '__main__':
  119. app = QtWidgets.QApplication(sys.argv)
  120. widgets = QtWidgets.QMainWindow()
  121. ui = UserMainUi()
  122. ui.setupUi(widgets)
  123. widgets.show()
  124. sys.exit(app.exec_())

3、项目UI美化

        通过以下方式进行界面的美化工作:

        (1)美化控制按钮

                通过 setFixedSize 方法设置按钮大小,通过 setStyleSheet 方法设置按钮CSS样式:

  1. self.close_button.setFixedSize(28, 28)
  2. self.other_button.setFixedSize(28, 28)
  3. self.minimize_button.setFixedSize(28, 28)
  4. self.close_button.setStyleSheet('''
  5. QPushButton{
  6. background:#F76677;
  7. border-radius:7px;}
  8. QPushButton:hover{
  9. background:red;}''')
  10. self.other_button.setStyleSheet('''
  11. QPushButton{
  12. background:#F7D674;
  13. border-radius:7px;}
  14. QPushButton:hover{
  15. background:yellow;}''')
  16. self.minimize_button.setStyleSheet('''
  17. QPushButton{
  18. background:#6DDF6D;
  19. border-radius:7px;}
  20. QPushButton:hover{
  21. background:green;}''')

                效果:

​        (2)美化左侧布局

                通过 setStyleSheet 方法设置左侧布局 left_widget 的样式,其中CSS样式的 QWidget #left_label 等字段对应上方初始化代码组件 setObjectName 方法的值,如:

        self.left_label_1.setObjectName('left_label')

         美化代码:

  1. # 设置左侧菜单按钮
  2. self.left_widget.setStyleSheet('''
  3. QPushButton{
  4. border:none;
  5. color:white;
  6. height:35px;
  7. padding-left:5px;
  8. padding-right:10px;
  9. font-size:15px;}
  10. QWidget#left_widget{
  11. background:#96989B;
  12. border-top-left-radius:5px;
  13. border-bottom-left-radius:5px;}
  14. QPushButton#left_label{
  15. border:none;
  16. font-size:20px;
  17. font-weight:700;
  18. font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;}
  19. QPushButton#left_button:hover{
  20. color:white;
  21. border-radius:10px;
  22. background:#646669;}''')

                效果:

​         (3)美化右侧布局

                方法如上,代码:

  1. self.right_widget.setStyleSheet('''
  2. QWidget#right_widget{
  3. background:#AAACAF;
  4. border-top-right-radius:5px;
  5. border-bottom-right-radius:5px;}''')

                效果:

​        (4)去除组件间缝隙

                代码如下:

  1. # 设置右边布局间距为0
  2. self.right_layout.setContentsMargins(0, 0, 2, 1)
  3. # 设置布局内部件间隙
  4. self.main_layout.setSpacing(0)
  5. self.right_layout.setSpacing(0)
  6. self.left_layout.setSpacing(0)

                效果:

​        (5)整体样式美化

                通过 setWindowOpacity 方法设置透明度

                通过 setAttribute(QtCore.Qt.WA_TranslucentBackground) 方法隐藏外围边框

                通过 setWindowFlag(QtCore.Qt.FramelessWindowHint) 方法产生一个无边框的窗口,用户不能移动和改变大小

                通过 setWindowTitle("人脸识别") 方法设置窗口标题

                通过 setWindowIcon(QIcon('logo.jpg')) 方法设置窗口logo

注意:QIcon('logo.jpg') 中的 logo.jpg 为导入的图片名称路径,你导入的图片叫什么名字就写什么名字。

  1. # 设置整体样式
  2. MainWindow.setWindowOpacity(0.9) # 设置窗口透明度
  3. MainWindow.setAttribute(QtCore.Qt.WA_TranslucentBackground) # 隐藏外围边框
  4. MainWindow.setWindowFlag(QtCore.Qt.FramelessWindowHint) # 产生一个无边框的窗口,用户不能移动和改变大小
  5. MainWindow.setWindowTitle("人脸识别") # 设置窗口标题
  6. MainWindow.setWindowIcon(QIcon('logo.jpg')) # 设置窗口logo

        效果:

​        (6)其他组件美化

                代码:

  1. self.camera_label.setStyleSheet('''
  2. color:#F8FCFF;
  3. font-size:60px;
  4. font-weight:bold;
  5. font-family:Roman times;''')
  6. self.remind_label.setStyleSheet('''
  7. color:#F0F7F4;
  8. font-size:30px;
  9. font-family:Microsoft YaHei;''')
  10. self.remind_label.setWordWrap(True)
  11. self.remind_label.setAlignment(Qt.AlignRight)

                效果:

4、美化后的UI代码

        最终代码:

  1. # -*- coding: utf-8 -*-
  2. import sys
  3. import qtawesome
  4. from PyQt5.QtGui import *
  5. from PyQt5.QtCore import Qt
  6. from PyQt5 import QtCore, QtWidgets
  7. class UserMainUi(object):
  8. def setupUi(self, MainWindow):
  9. MainWindow.setObjectName("UserMainWindow")
  10. MainWindow.resize(1200, 800)
  11. # ------------ 整体界面设计,使用网格布局 ------------ #
  12. self.main_widget = QtWidgets.QWidget(MainWindow) # 创建窗口主部件
  13. self.main_layout = QtWidgets.QGridLayout() # 创建主部件的网格布局
  14. self.main_widget.setLayout(self.main_layout) # 设置窗口主部件布局为网格布局
  15. self.left_widget = QtWidgets.QWidget(MainWindow) # 创建左侧部件
  16. self.left_widget.setObjectName('left_widget')
  17. self.left_layout = QtWidgets.QGridLayout()
  18. self.left_widget.setLayout(self.left_layout) # 设置左侧部件布局为网格
  19. self.right_widget = QtWidgets.QWidget(MainWindow) # 创建右侧部件
  20. self.right_widget.setObjectName('right_widget')
  21. self.right_layout = QtWidgets.QGridLayout()
  22. self.right_widget.setLayout(self.right_layout) # 设置右侧部件布局为网格
  23. self.main_layout.addWidget(self.left_widget, 0, 0, 15, 2) # 左侧部件在第0行第0列,占15行2列
  24. self.main_layout.addWidget(self.right_widget, 0, 2, 15, 10) # 右侧部件在第0行第2列,占15行10列
  25. MainWindow.setCentralWidget(self.main_widget) # 设置窗口主部件
  26. # ------------ 左侧菜单模块,使用网格布局 ------------ #
  27. # 关闭按钮
  28. self.close_button = QtWidgets.QPushButton("")
  29. # 空白按钮
  30. self.other_button = QtWidgets.QPushButton("")
  31. # 最小化按钮
  32. self.minimize_button = QtWidgets.QPushButton("")
  33. # JUNIOR 标志
  34. self.left_label_1 = QtWidgets.QPushButton("JUNIOR")
  35. self.left_label_1.setObjectName('left_label')
  36. # SENIOR 标志
  37. self.left_label_2 = QtWidgets.QPushButton("SENIOR")
  38. self.left_label_2.setObjectName('left_label')
  39. # 打开摄像头 按钮
  40. self.camera_button = QtWidgets.QPushButton(qtawesome.icon('fa5s.video', color='white'), "打开相机")
  41. self.camera_button.setObjectName('left_button')
  42. # 用户登录 按钮
  43. self.login_button = QtWidgets.QPushButton(qtawesome.icon('fa5s.user-alt', color='white'), "用户登录")
  44. self.login_button.setObjectName('left_button')
  45. # 用户登出 按钮
  46. self.logout_button = QtWidgets.QPushButton(qtawesome.icon('fa5s.sign-out-alt', color='white'), "用户登出")
  47. self.logout_button.setObjectName('left_button')
  48. # 用户注册 按钮
  49. self.register_button = QtWidgets.QPushButton(qtawesome.icon('fa5s.user-plus', color='white'), "用户注册")
  50. self.register_button.setObjectName('left_button')
  51. # 查询用户 按钮
  52. self.query_user_button = QtWidgets.QPushButton(qtawesome.icon('fa5s.search', color='white'), "修改信息")
  53. self.query_user_button.setObjectName('left_button')
  54. # 人脸识别 按钮
  55. self.recognition_button = QtWidgets.QPushButton(qtawesome.icon('fa5s.eye', color='white'), "人脸识别")
  56. self.recognition_button.setObjectName('left_button')
  57. # 人脸对比 按钮
  58. self.face_compare_button = QtWidgets.QPushButton(qtawesome.icon('fa5s.people-arrows', color='white'),
  59. "人脸对比")
  60. self.face_compare_button.setObjectName('left_button')
  61. # 活体检测 按钮
  62. self.biopsy_testing_button = QtWidgets.QPushButton(qtawesome.icon('fa5s.atom', color='white'), "活体检测")
  63. self.biopsy_testing_button.setObjectName('left_button')
  64. # 精细分割 按钮
  65. self.fine_segmentation_button = QtWidgets.QPushButton(qtawesome.icon('fa5s.cut', color='white'), "精细分割")
  66. self.fine_segmentation_button.setObjectName('left_button')
  67. # 关键点检测 按钮
  68. self.attitude_detection_button = QtWidgets.QPushButton(qtawesome.icon('fa5s.draw-polygon', color='white'),
  69. "姿态检测")
  70. self.attitude_detection_button.setObjectName('left_button')
  71. # 添加左侧按钮
  72. self.left_layout.addWidget(self.close_button, 0, 0, 1, 1)
  73. self.left_layout.addWidget(self.other_button, 0, 1, 1, 1)
  74. self.left_layout.addWidget(self.minimize_button, 0, 2, 1, 1)
  75. self.left_layout.addWidget(self.left_label_1, 1, 0, 1, 3)
  76. self.left_layout.addWidget(self.camera_button, 2, 0, 1, 3)
  77. self.left_layout.addWidget(self.login_button, 3, 0, 1, 3)
  78. self.left_layout.addWidget(self.logout_button, 4, 0, 1, 3)
  79. self.left_layout.addWidget(self.register_button, 5, 0, 1, 3)
  80. self.left_layout.addWidget(self.query_user_button, 6, 0, 1, 3)
  81. self.left_layout.addWidget(self.left_label_2, 7, 0, 1, 3)
  82. self.left_layout.addWidget(self.recognition_button, 8, 0, 1, 3)
  83. self.left_layout.addWidget(self.biopsy_testing_button, 9, 0, 1, 3)
  84. self.left_layout.addWidget(self.face_compare_button, 10, 0, 1, 3)
  85. self.left_layout.addWidget(self.fine_segmentation_button, 11, 0, 1, 3)
  86. self.left_layout.addWidget(self.attitude_detection_button, 12, 0, 1, 3)
  87. # ------------ 右侧模块,使用网格布局 ------------ #
  88. # 摄像头展示部分
  89. self.camera_label = QtWidgets.QLabel('\n人脸识别\n\n系统')
  90. self.camera_label.setAlignment(Qt.AlignCenter)
  91. # 信息展示界面
  92. self.msg_label_a = QtWidgets.QLabel('')
  93. self.msg_label_b = QtWidgets.QLabel('')
  94. self.msg_label_c = QtWidgets.QLabel('')
  95. self.remind_label = QtWidgets.QLabel('')
  96. self.right_layout.addWidget(self.camera_label, 1, 0, 3, 10)
  97. self.right_layout.addWidget(self.msg_label_a, 5, 2, )
  98. self.right_layout.addWidget(self.msg_label_b, 5, 4, )
  99. self.right_layout.addWidget(self.msg_label_c, 5, 6, )
  100. self.right_layout.addWidget(self.remind_label, 5, 3, )
  101. self.camera_label.setMinimumSize(QtCore.QSize(900, 560))
  102. self.camera_label.setMaximumSize(QtCore.QSize(900, 560))
  103. labels = [self.msg_label_a, self.msg_label_b, self.msg_label_c]
  104. for label in labels:
  105. label.setMinimumSize(QtCore.QSize(150, 200))
  106. label.setMaximumSize(QtCore.QSize(150, 200))
  107. self.remind_label.setMinimumSize(QtCore.QSize(170, 200))
  108. self.remind_label.setMaximumSize(QtCore.QSize(170, 200))
  109. # ----------------------美化------------------ #
  110. # 美化控制按钮
  111. self.close_button.setFixedSize(28, 28)
  112. self.other_button.setFixedSize(28, 28)
  113. self.minimize_button.setFixedSize(28, 28)
  114. self.close_button.setStyleSheet('''
  115. QPushButton{
  116. background:#F76677;
  117. border-radius:7px;}
  118. QPushButton:hover{
  119. background:red;}''')
  120. self.other_button.setStyleSheet('''
  121. QPushButton{
  122. background:#F7D674;
  123. border-radius:7px;}
  124. QPushButton:hover{
  125. background:yellow;}''')
  126. self.minimize_button.setStyleSheet('''
  127. QPushButton{
  128. background:#6DDF6D;
  129. border-radius:7px;}
  130. QPushButton:hover{
  131. background:green;}''')
  132. # 美化左侧布局
  133. self.left_widget.setStyleSheet('''
  134. QPushButton{
  135. border:none;
  136. color:white;
  137. height:35px;
  138. padding-left:5px;
  139. padding-right:10px;
  140. font-size:15px;}
  141. QWidget#left_widget{
  142. background:#96989B;
  143. border-top-left-radius:5px;
  144. border-bottom-left-radius:5px;}
  145. QPushButton#left_label{
  146. border:none;
  147. font-size:20px;
  148. font-weight:700;
  149. font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;}
  150. QPushButton#left_button:hover{
  151. color:white;
  152. border-radius:10px;
  153. background:#646669;}''')
  154. # 美化右侧布局
  155. self.right_widget.setStyleSheet('''
  156. QWidget#right_widget{
  157. background:#AAACAF;
  158. border-top-right-radius:5px;
  159. border-bottom-right-radius:5px;}''')
  160. # 去除组件间间隙
  161. self.right_layout.setContentsMargins(0, 0, 2, 1)
  162. self.main_layout.setSpacing(0)
  163. self.right_layout.setSpacing(0)
  164. self.left_layout.setSpacing(0)
  165. # 设置整体样式
  166. MainWindow.setWindowOpacity(0.9) # 设置窗口透明度
  167. MainWindow.setAttribute(QtCore.Qt.WA_TranslucentBackground) # 隐藏外围边框
  168. MainWindow.setWindowFlag(QtCore.Qt.FramelessWindowHint) # 产生一个无边框的窗口,用户不能移动和改变大小
  169. MainWindow.setWindowTitle("人脸识别") # 设置标题
  170. MainWindow.setWindowIcon(QIcon('Logo.jpg')) # 设置logo
  171. # 其他组件美化
  172. self.camera_label.setStyleSheet('''
  173. color:#F8FCFF;
  174. font-size:60px;
  175. font-weight:bold;
  176. font-family:Roman times;''')
  177. self.remind_label.setStyleSheet('''
  178. color:#F0F7F4;
  179. font-size:30px;
  180. font-family:Microsoft YaHei;''')
  181. self.remind_label.setWordWrap(True)
  182. self.remind_label.setAlignment(Qt.AlignRight)
  183. if __name__ == '__main__':
  184. app = QtWidgets.QApplication(sys.argv)
  185. widgets = QtWidgets.QMainWindow()
  186. ui = UserMainUi()
  187. ui.setupUi(widgets)
  188. widgets.show()
  189. sys.exit(app.exec_())

        最终样式:

​注:现在完成的UI界面,各个按钮还不能进行点击,即逻辑部分的代码还没有编写。

继续阅读:

UI事件处理:Python | 人脸识别系统 — UI事件处理

摄像头画面展示:Python | 人脸识别系统 — 摄像头画面展示

用户端逻辑:

管理员端逻辑:

注:以上代码仅供参考,如需运行,参考GitHub源代码: Su-Face-Recognition

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/737095
推荐阅读
相关标签
  

闽ICP备14008679号