pyqt5学习

Posted archmage01

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pyqt5学习相关的知识,希望对你有一定的参考价值。

详细设计追函数报告生成

界面大致如下:

技术图片

技术图片

 

技术图片

部分UI代码:

#!/usr/bin/env python3.7 
# -*- coding:utf-8 -*-
# Author: Lancer  2019-09-19 19:52:40

import  os,sys,re,psutil,copy
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import *
from  count_testcase   import *
from  create_testfile  import *

__Version__ = "V0.0.1"
__Author__  = "Lancer"
__Modifytime__ = "20190919"


class  MainWidows(QMainWindow):
    def  __init__(self, parent=None):
        super(MainWidows,self).__init__(parent)
        self.desktop = QApplication.desktop()
        self.screenRect = self.desktop.screenGeometry()
        self.height = self.screenRect.height()
        self.width = self.screenRect.width()
        self.resize(1000,800)
        self.setWindowTitle("Tools")
        # 整体布局
        self.basewidget = QFrame(self)
        self.workspace_layout =  QVBoxLayout()
        self.workspace_frame =  QFrame(self.basewidget)
        #self.workspace_frame.setStyleSheet("QFrameborder: 1px solid #000000")
        self.show_choice = QGroupBox()
        self.show_choice.setTitle("界面切换")
        self.theme_choice = QGroupBox()
        self.theme_choice.setTitle("主题切换")
        self.tools_choice = QGroupBox()
        self.tools_choice.setTitle("工具栏")
        self.workspace_layout.addWidget(self.show_choice)
        self.workspace_layout.addWidget(self.theme_choice)
        self.workspace_layout.addWidget(self.tools_choice)
        self.show_layout  = QVBoxLayout()
        self.totestcase_btn = QPushButton("测试文件生成")
        self.tocase_count_btn = QPushButton("测试案例统计")
        self.show_layout.addWidget(self.totestcase_btn)
        self.show_layout.addWidget(self.tocase_count_btn)
        self.show_layout.addStretch(1)  #弹簧   空白填充的感觉
        self.show_choice.setLayout(self.show_layout)
        self.black_css = QPushButton("炫酷黑")
        self.blue_css = QPushButton("天空蓝")
        self.css_layout = QVBoxLayout()
        self.css_layout.addWidget(self.black_css)
        self.css_layout.addWidget(self.blue_css)
        self.css_layout.addStretch(1)
        self.theme_choice.setLayout(self.css_layout)
        self.about_btn = QPushButton("关于")
        self.help_btn  = QPushButton("工具使用介绍")
        self.other_layout = QVBoxLayout()
        self.other_layout.addStretch(1)
        self.other_layout.addWidget(self.about_btn)
        self.other_layout.addWidget(self.help_btn)
        self.tools_choice.setLayout(self.other_layout)
        #添加工作面板
        self.stackedWidget = QStackedWidget()
        self.createcasewidget = CreateTestFile(self.basewidget)
        self.countcasewidget  = CountTestCase(self.basewidget)
        self.stackedWidget.addWidget(self.createcasewidget)
        self.stackedWidget.addWidget(self.countcasewidget)

        self.workspace_frame.setLayout(self.workspace_layout)
        self.main_layout = QHBoxLayout()
        self.main_layout.addWidget(self.stackedWidget)
        self.main_layout.addWidget(self.workspace_frame)
        self.main_layout.setStretchFactor(self.workspace_frame, 1)  #设置布局比例
        self.main_layout.setStretchFactor(self.stackedWidget, 9 )
        self.basewidget.setLayout(self.main_layout)
        self.setCentralWidget(self.basewidget)
        #状态栏
        self.datetime = QtCore.QDateTime.currentDateTime()  
        self.statusbar =  self.statusBar().showMessage(self.datetime.toString(QtCore.Qt.DefaultLocaleLongDate))
        #定时器
        self.timer = QtCore.QTimer(self) #初始化一个定时器
        self.timer.timeout.connect(self.app_loop) 
        self.timer.start(1000) #设置计时间隔并启动

        #信号槽
        self.totestcase_btn.clicked.connect(self.set_workwidget_01)
        self.tocase_count_btn.clicked.connect(self.set_workwidget_02)
        self.about_btn.clicked.connect(self.about_tools)
        self.help_btn.clicked.connect(self.help_ui)
        self.stackedWidget.setCurrentIndex(1)

    def set_workwidget_01(self):
        self.stackedWidget.setCurrentIndex(0)
    def set_workwidget_02(self):
        self.stackedWidget.setCurrentIndex(1)
    
    def about_tools(self):
        QMessageBox.about(self,"关于","版本号:%s \\n作者:%s \\n发布时间:%s   \\n"%(__Version__,__Author__ , __Modifytime__ ))

    def help_ui(self):
        help_str = """        A   生成测试文件: 输入函数名 可以选则测试案例个数 点击生成按钮  会生成固定格式 test_函数名.cpp  \\n
        B   测试案例统计:
        步骤   1. 点击按钮【测试报告文档选择】选择模块parasoft报告(.pdf)
               2. 点击按钮【查询具体函数按钮个】可以显示每个函数的测试案例统计个数
               3. 点击按钮【详细设计单元测试追溯表生成】 可以生成详细设计单元测试追溯表 (Excel)
        """
        QMessageBox.about(self,"帮助信息","帮助信息:\\n%s "%(help_str))

    def app_loop(self):
        self.datetime = QtCore.QDateTime.currentDateTime()  
        self.statusbar =  self.statusBar().showMessage(self.datetime.toString(QtCore.Qt.DefaultLocaleLongDate))

if __name__ == "__main__":
    app  = QApplication(sys.argv)
    demo = MainWidows()
    demo.show()
    sys.exit(app.exec_())

 

以上是关于pyqt5学习的主要内容,如果未能解决你的问题,请参考以下文章

PyQt5学习一---环境的安装和配置

pyqt5--学习资料

Pyqt5学习系列

pyqt5学习——pyqt5中.qrc资源文件的创建与编写

pyqt5学习日记

pyqt5学习记录