问:
你是一名资深测试开发工程师
帮我设计一个提效工具,具有以下功能:
1.页面使用PYQT5设计,用两个输入控件,最好是日期类型的控件,第一个日期控件作为开始日期,第二个日期控件作为结束日期;前后日期可以为空,开始日期为空时,默认传当年的第一天;结束日期不选择的话,默认传当月最后一天;有一个查询按钮,点击查询,将开始日期及结束日期传递给数据处理函数;
2.传递给数据处理函数后,这里帮我搭一个架子,具体逻辑我来实现,帮我处理通过开始日期、结束日期获取月份信息,例如开始日期为2025-01-01,则帮我处理为2025-01,结束日期也是同理;
3.经过处理函数的处理后,在GUI界面下发区域进行展示,包含的表头有系统名称、版本发布周期(即开始日期-结束日期)、测试父计划名称、测试子计划名称、关联测试用例数、包含的P0级用例数;
4.在表格下发有一个导出按钮,点击导出,将表格内容以XLSX格式导出。
好了,帮我输出一个美观大方得体的工具吧,你是最厉害的,一定要保证代码的逻辑正确,也要保证代码足够健壮
答:
以下是一个基于PyQt5的健壮工具实现,包含您要求的所有功能特性:
import sys
from datetime import date, datetime
from PyQt5.QtWidgets import (QApplication, QMainWindow, QWidget, QVBoxLayout, QHBoxLayout,
QLabel, QDateEdit, QPushButton, QTableWidget, QTableWidgetItem,
QMessageBox, QFileDialog)
from PyQt5.QtCore import QDate, Qt
import pandas as pd
class ReleasePlanTool(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
self.data = [] # 存储表格数据
def initUI(self):
self.setWindowTitle('版本测试计划管理工具')
self.setGeometry(300, 300, 1200, 800)
# 主布局
main_widget = QWidget()
self.setCentralWidget(main_widget)
layout = QVBoxLayout(main_widget)
# 日期选择区域
date_layout = QHBoxLayout()
self.start_date_edit = QDateEdit(calendarPopup=True)
self.start_date_edit.setDisplayFormat("yyyy-MM-dd")
self.start_date_edit.setDate(QDate.currentDate().addMonths(-1))
self.start_date_edit.setMaximumDate(QDate.currentDate