详细设计追函数报告生成

界面大致如下:

部分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__ = "" 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("QFrame{border: 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_())

加了CSS效果:

效果2:

pyqt5学习的更多相关文章

  1. PyQt5学习笔记-从主窗体打开一个子窗体

    PyQt5学习笔记-从主窗体打开一个子窗体 软件环境: Eric6+Python3.5+PyQt5 试验目标: 1.点击菜单项Open,打开一个子窗体 2.点击按钮Open,打开一个子窗体 主窗体设计 ...

  2. Pyqt5学习笔记(一)

    Python已有的GUI框架: Tkinter(python内嵌的GUI环境,使用TCL实现,易学易用,方便简单创GUI自带无需安装,适用于Unix.Windows和Mac系统组,在Tk8.0的后续版 ...

  3. Pyqt5学习系列

    最近在学习Pyqt5做界面,找到了一个非常棒的博主的学习系列 在此记录下来: http://blog.csdn.net/zhulove86/article/category/6381941

  4. PyQt5学习笔记----标准文件打开保存框QFileDialog

    单个文件打开 QFileDialog.getOpenFileName()多个文件打开 QFileDialog.getOpenFileNames() 文件夹选取     QFileDialog.getE ...

  5. PYQT5学习笔记之各模块介绍

    Qtwidgets模块包含创造经典桌面风格的用户界面提供了一套UI元素的类 Qtwidegts下还有以下常用对象,所以一般使用Qtwidegts时会使用面向对象式编程 QApplication: ap ...

  6. PyQt5学习笔记14----初识pyqt多线程操作

    转载:翻滚吧挨踢男 首先来看一个例子: # coding=utf-8 __author__ = 'a359680405' from PyQt5.QtCore import * from PyQt5.Q ...

  7. Python pyQt4/PyQt5 学习笔记4(事件和信号)

    信号 & 槽 import sys from PyQt5.QtCore import Qt from PyQt5.QtWidgets import (QWidget,QLCDNumber,QS ...

  8. Python pyQt4/PyQt5 学习笔记3(绝对对位,盒布局,网格布局)

    本节研究布局管理的内容. (一)绝对对位  import sys from PyQt4 import QtGui class Example(QtGui.QWidget): def __init__( ...

  9. Python pyQt4/pyQt5 学习笔记2(状态栏、菜单栏和工具栏)

    例子:状态栏.菜单栏和工具栏 import sys from PyQt4 import QtGui class Example(QtGui.QMainWindow): def __init__(sel ...

  10. Python pyQt4/pyQt5 学习笔记1(空白窗口,按钮,控件事件,控件提示,窗体显示到屏幕中间,messagebox)

    PyQt4是用来编写有图形界面程序(GUI applications)的一个工具包.PyQt4作为一个Python模块来使用,它有440个类和超过6000种函数和方法.同时它也是一个可以在几乎所有主流 ...

随机推荐

  1. Java生鲜电商平台-订单中心服务架构与异常订单逻辑

    Java生鲜电商平台-订单中心服务架构与异常订单逻辑 订单架构实战中阐述了订单系统的重要性,并从订单系统的信息架构和流程上对订单系统有了总体认知,同时还穿插着一些常见的订单业务规则和逻辑.上文写到订单 ...

  2. DesignPattern系列__08UML相关知识

    前言 现在,很少有人和90年代一样,自己去实现一个软件的各个方面,也就是说,在工作中,和人沟通是必备的技能.那么,作为一枚码农,如何和他人沟通呢?这就要依靠本文的主题了--UML. 简介 UML--U ...

  3. HIVE SQL产生的文件数量及参数调优

    产生背景:sqoop抽取oracle数据到hive表时,只能写入到固定分区(--hive-partition-key #hive分区字段 --hive-partition-value #hive分区值 ...

  4. PyCharm注释中出现中文运行报错的解决办法

    SyntaxError: Non-UTF-8 code starting with '..... 方法一:在文件首行加上 # -*- coding:utf-8 -*- 方法二:更改编码格式 File ...

  5. Python格式化输出和深浅复制

    字符串的四种拼接方法,常用格式化 deepcopy(深复制) bytes 和 bytearray 的基本用法 字符串拼接 使用 + 格式化字符串 使用join 用单引号内的字符来拼接,参数填一个整体 ...

  6. vue 组件之纯表格渲染--没有事件交互

    组件 名称小写==> 用-链接 02===> 属性==> empty-text="暂无数据" 当表格中没有数据 就会显示 暂无数据 <el-table-co ...

  7. win10python安装iis

    django部署iis https://www.cnblogs.com/guangang/articles/9268644.html python部署iis https://www.cnblogs.c ...

  8. SpringCloud学习笔记(五、SpringCloud Netflix Hystrix)

    目录: Hystrix简介 线程隔离:线程池.信号量 服务降级.服务熔断.请求缓存.请求合并 Hystrix完整流程.Hystrix属性值 注解方式实现Hystrix Hystrix Dashboar ...

  9. 环形链表 II

    给定一个链表,返回链表开始入环的第一个节点. 如果链表无环,则返回 null. 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始). 如果 pos 是 - ...

  10. Django的下载与创建。

    一.下载 (1)下载命令. 在cmd中输入下载命令: pip3 install django==1.11.11 1.11.11是该版本号. (2)pycharm中下载 直接在pycharm中下载set ...