PyQt5多个GUI界面设计

本文详细介绍了使用PyQt5和Qt Designer设计多界面应用的过程,包括主界面、裂纹快速识别界面和图像处理测试界面的创建,以及不同界面间的跳转和重置功能的实现。在Python3.6环境下,借助PyQt5模块和相关工具,完成了GUI界面的开发,并展示了最终运行效果。
摘要由CSDN通过智能技术生成

版权声明:本文为博主原创文章,转载 请注明出处:https://blog.csdn.net/sc2079/article/details/90454379
2022更:链接:https://pan.baidu.com/s/1Qw145uoRgmaks3MaGlTEOQ
提取码:scyf。仅限本博客核心代码~(好多人私信(^-^)V,现直接百度云盘见吧)

- 写在前面



  本科毕业设计终于告一段落了。特写博客记录做毕业设计(路面裂纹识别)期间的踩过的坑和收获。希望对你有用。

  目前有:

    1.Tensorflow&CNN:裂纹分类

    2.Tensorflow&CNN:验证集预测与模型评价

    3.PyQt5多个GUI界面设计  
  本篇讲GUI界面的设计。设计目标:实现用户对路面裂纹快速检测与识别,有三个界面:主界面、裂纹快速识别界面、图像处理测试界面。

- 环境配置安装



  运行环境:Python3.6、Spyder、Qt Designer

  依赖的模块:PyQt5、mysql等

  值得注意的是:我安装PyQt5模块时,按照网上方法,如下:

pip install PyQt5
pip install PyQt5-tools

  却发现找到Qt Designer的应用程序,(其实是有的,在C盘的某个角落,可以用everything小工具可以找到)。
  于是乎,我就直接使用了PyQt5运行环境合集,内含Qt Designer(主要用来设计界面以及UI文件转换成PY)。
  下载地址如下:

WinPyQt5.9-32bit-3.5.3.1

- 开始工作


1. 界面设计


  打开Qt Designer:


  可以参照网上或书籍上关于Qt Designer的资料,简单设计三个界面,如下:


  Qt Designer设计的文件后缀为.ui,需要将其转换为.py文件。打开刚才下载的PyQt5合集中的WinPython Command Prompt,输入:

pyuic5 -o D:\WinPyQt5.9-32bit-3.5.3.1\test\XX.py D:\WinPyQt5.9-32bit-3.5.3.1\test\XX.ui


  即可得到界面的Python文件。

2. 界面功能实现

2.1 主界面


  主界面功能比较简单,主要是用户对功能的选择以及对该系统的了解。

from PyQt5.QtWidgets import QMainWindow,QMessageBox,QApplication
from main_gui import Ui_MainWindow
import sys
import time
from PyQt5.QtGui import QPixmap

class MainWindow(QMainWindow):
    def __init__(self,parent = None):
        super(MainWindow,self).__init__(parent=parent)#调用父类的init
        global ui
        ui = Ui_MainWindow()
        ui.setupUi(self)
        
    def about_us(self):
        msgBox = QMessageBox(QMessageBox.NoIcon, '关于','XX的本科毕业设计')
        msgBox.setIconPixmap(QPixmap(".//icon//me3.jpg"))
        msgBox.exec()
    def function_exp(self):
        msgBox = QMessageBox(QMessageBox.NoIcon, '功能说明','')
        msgBox.exec()
    def operate_exp(self):
        msgBox = QMessageBox(QMessageBox.NoIcon, '操作说明','')
        msgBox.exec()

    def jump_to_1(self):
        pass

    def jump_to_2(self):   
        pass
        
    def closeEvent(self, event):
        reply = QMessageBox.question(self, '提醒',
            "确定退出?", QMessageBox.Yes |
            QMessageBox.No, QMessageBox.No)

        if reply == QMessageBox.Yes:
            event.accept()
        else:
            event.ignore() 
if __name__ == '__main__':    
    app = 0
    app = QApplication(sys.argv)
    myMainWindow = MainWindow()#自定义的类例化
    myMainWindow.show()
    time.sleep(10)
    sys.exit(app.exec_())


  而对于转换的主界面的py代码(注意:本文将转换成的.py文件命名为xx_gui.py,而其对应的.py文件命名为xx_win.py),找到如下语句:

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)


  修改为:

        self
  • 47
    点赞
  • 366
    收藏
    觉得还不错? 一键收藏
  • 32
    评论
评论 32
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值