公共用例库计划--个人版(二)主体界面设计

news2024/12/23 22:45:57

1、任务概述

计划内容:完成公共用例库的开发实施工作,包括需求分析、系统设计、开发、测试、打包、运行维护等工作。

1.1、 已完成:

  • 需求分析、数据库表的设计:公共用例库计划–个人版(一)

1.2、 本次待完成:

公共用例库项目主体界面与逻辑设计阶段的工作。

2、开发流程:

2.1、界面设计

步骤2.1.1:使用Qt Designer设计UI
启动Qt Designer工具,创建一个新的GUI应用程序项目。
根据需求分析和数据库表设计的结果,设计并布局应用的主窗口和其他相关对话框或部件(例如菜单栏、工具栏、表格视图展示用例数据等)。
设置各个控件的属性,包括标签、输入框、按钮等,并确保它们能正确响应用户操作。
步骤2.1.2:保存和导出.ui文件
完成界面设计后,在Qt Designer内保存设计成果为.ui文件格式。

2.2、转换UI文件为Python脚本

步骤2.2.1:使用PyUIC转换
使用PyUIC工具将设计好的.ui文件转换为Python可读的.py文件。

2.3、编写逻辑代码

步骤2.3.1:导入生成的.py界面文件到PyCharm
打开PyCharm,新建或打开已有的项目文件夹。
将由PyUIC生成的.py界面文件添加至项目的合适位置。
创建一个主程序文件(如main.py),在这个文件中导入转换后的界面模块,并设置主窗口类的实例化及信号槽连接。
步骤2.3.2:编写业务逻辑
在对应的逻辑处理模块中,根据需求分析定义功能函数以及事件处理器。
连接UI中的控件信号到相应的逻辑处理函数,实现数据的加载、编辑、存储、查询等功能,同时处理任何与数据库交互的操作。

3、Qt Designer设计UI

3.1、用例库主页面

边学边用,下面两篇文章讲的比较详细:
Qt designer界面和所有组件功能的详细介绍(全!!!)
PyQt5常用控件大全

1.Qt Designer中,新建主页面窗口。

在这里插入图片描述

2.增加Widge、布局与Tab Widget,实现多个页面切换。

在这里插入图片描述

3.陆续添加输入框,按钮,模块列表,用例列表等。将用例库页面设计完成。

  • 左侧输入框,查询模块名称,下方树状列表显示模块与模块ID。
  • 选择模块,点击“新增用例”按钮,跳转新增页面。
  • 点击查询,显示所有用例,点击模块显示模块所属用例。选择查询条件、重置。

在这里插入图片描述

3.2、用例信息编辑页面

选择模块后,点击新增用例,将模块信息带入“所属模块”,不允许编辑。
标题、步骤必填,设置用例类型、优先级、用例状态下拉框。码值与之前数据设计时一致。
在这里插入图片描述

3.3、模块信息编辑页面

新增、编辑模块信息,查询选择上一级节点。
在这里插入图片描述

3.4、提示信息页面

对删除、新增等操作,进行提示与确认。
在这里插入图片描述

4、转换UI文件为Python脚本

PyCharm设置External Tools,配置PyUIC。设置完成拓展工具后,选择ui文件选择external tools的PyUIC,即可自动生成。
在这里插入图片描述

5、编写逻辑代码

依次对每个功能编写相应的函数,进行调用。太多就不贴了。例如下面的提示框页面:

class Tishi(QDialog, Ui_Tishi):
    '''提示信息页面'''
    confirmed_signal=pyqtSignal()

    def __init__(self, parent=None):
        super().__init__()
        self.setupUi(self)  # 直接调用self的setupUi方法
        self.is_message_box_open=False  # 标志变量,跟踪提示框的状态
        self.label.setWordWrap(True)    #提示文本,自动换行


    def xinxi(self, vale,q=False):
        '''输入提示信息,5秒自动关闭'''
        self.pushButton.setVisible(q)# 隐藏(取消显示)确认按钮
        self.qr=0

        self.timer=QTimer()
        self.label.setText(f"提示:{vale}")  # 弹窗提示信息
        if self.is_message_box_open:
            self.close()  # 关闭旧的提示框
            self.timer.stop()  # 停止旧的计时器

        self.pushButton.setEnabled(True)  # 按钮恢复
        self.is_message_box_open=True
        self.timer.setSingleShot(True)  # 单次触发模式
        self.timer.timeout.connect(self.close)
        self.timer.start(6000)  # 5000毫秒等于5秒
        self.exec() # 置顶,其它窗口不能操作

    def queren(self):
        '''确认'''
        self.close()  # 弹窗确认按钮
        self.qr=1
        self.pushButton.setEnabled(False)  # 按钮置灰


if __name__ == '__main__':
    app=QApplication(sys.argv)
    w=Tishi()
    w.show()  # 显示窗口
    # w.chaxun()
    sys.exit(app.exec())

运行,展示一个提示框。
完整代码放文末度盘。
在这里插入图片描述

6、完成情况

完成功能:用例库页面的增、删、改、查,回收站页面的恢复与删除。
待开发:导入导出,主页图表,界面美化,打包等。
在这里插入图片描述

使用介绍:

请添加图片描述
相关代码:链接:https://pan.baidu.com/s/1J-z9U6cukF7o-BlyaK86rw?pwd=4lq4
提取码:4lq4

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1360083.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

神经网络-卷积层

卷积 输入通道数, 输出通道数,核大小 参数具体含义 直观理解各个参数的网站(gif) https://github.com/vdumoulin/conv_arithmetic/blob/master/README.md大概长这样,cyan是青色的意思 channel数(终于理解论文里图片放好多层的原因…

VMware ESXI 8 安装ipmitool 调整戴尔服务器风扇转速

本文内容适合ESXI 8版本安装ipmitool ,进行管理,已知的是8.0以上版本无法安装社区的vib.所以需要自己编译文件,7.0及之前的版本可以安装vib版本的ipmtools。 一、编译好的适用于esxi8的ipmitool下载 ipmitool下载 二、安装ipmitool 1、开…

铁塔基站数字化管理监测解决方案

截至2023年10月,我国5G基站总数达321.5万个,占全国通信基站总数的28.1%。然而,随着5G基站数量的快速增长,基站的能耗问题也逐渐日益凸显,基站的用电给运营商带来了巨大的电费开支压力,降低5G基站的能耗成为…

new FormData 同时发送表单 json 以及文件二进制流

需要新增时同时发送表单 json 以及对应的文件即可使用以下方法传参 let formDataParams new FormData(); 首先通过 new FormData() 创建你需要最后发送的表单 接着将你的对象 json 存储,注意使用 new Blob 创建大表单转换成 json 格式。以…

根据MySql的表名,自动生成实体类,模仿ORM框架

ORM框架可以根据数据库的表自动生成实体类,以及相应CRUD操作 本文是一个自动生成实体类的工具,用于生成Mysql表对应的实体类。 新建Winform窗体应用程序AutoGenerateForm,框架(.net framework 4.5), 添加对System.Configuration的…

了解nginx

1,概念 nginx是一个轻量级、高性能的HTTP和反向代理web服务器,同时也是一个通用代理服务器(TCP、UDP、IMAP、POP3、SMTP)。 2,优势 轻量级,占用内存少,启动极快采用事件驱动的异步非阻塞处理方…

linux中的系统安全

一.账号安全 将非登录用户的shell设为/sbin/nologin 系统中用户有三种:超级管理员 普通用户 程序用户 前两种用户可以登录系统,程序用户不给登录 所以称为非登录用户 命令格式: usermod -s /sbin/nologin(改已有用户&#…

亲测表白网制作源码,在线制作表白,无数据库上传就能用

在线制作表白网源码 没有数据库上传就能用 后台/admin 账号密码都是admin

【mars3d】批量关闭矢量数据的startFlicker()闪烁或者全部关闭startFlicker()

问题 1.graphic/entity/billboard怎么能够批量关闭startFlicker()闪烁或者 全部关闭startFlicker()呢? 相关链接 1.http://mars3d.cn/editor-vue.html?idgraphic/entity/billboard 2.http://mars3d.cn/apidoc.html#FlickerEntity 期望效果 1.graphic.stopFlic…

Java:爬虫htmlunit

为什么htmlunit与HttpClient两者都可以爬虫、网页采集、通过网页自动写入数据,我们会推荐使用htmlunit呢? 一、网页的模拟化 首先说说HtmlUnit相对于HttpClient的最明显的一个好处,HtmlUnit更好的将一个网页封装成了一个对象,如果你非要说H…

数字后端设计实现 | 数字后端PR工具Innovus中如何创建不同高度的row?

吾爱IC社区星球学员问题:Innovus后端实现时两种种不同高度的site能做在一个pr里面吗? 答案是可以的。 Innovus支持在同一个设计中中使用不同的row,但需要给各自子模块创建power domain。这里所说的不同高度的row,有两种情况。 1…

数据库高可用mha

MHA搭建的步骤 一.配置主从复制 1.初始化环境 #在四台服务器上初始化环境 systemctl stop firewalld systemctl disable firewalld setenforce 0 2.修改 Master、Slave1、Slave2 节点的主机名 #在Master上 hostnamectl set-hostname mysql1 su#在Slave1 hostnamectl set-h…

102、X^3 : Large-Scale 3D Generative Modeling using Sparse Voxel Hierarchies

简介 官网  Nvidia2023提出的一种新的生成模型,可生成具有任意属性的高分辨率稀疏3D体素网格,以前馈方式生成数百万体素,最细有效分辨率高达 102 4 3 1024^3 10243,而无需耗时的 test-time 优化,使用一种分层体素潜…

LeetCode 2125. 银行中的激光束数量【数组,遍历】1280

本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…

1.3进制,码(8421),化简规则、卡诺图化简、性质,触发器(转换与设计、应用),电路图,电路设计

十进制与原码、反码、补码之间的转换 正数的原码、反码、补码相同,符号位为0 负数的原码为、符号位1,二进制数 反码,符号位不变、其它取反, 补码为:反码最低有效位1 运算 卡诺图化简 奇偶校验码 检查1的个数&…

C语言编译器(C语言编程软件)完全攻略(第二十四部分:Turbo C 2.0使用教程(使用Turbo C 2.0编写C语言程序))

介绍常用C语言编译器的安装、配置和使用。 二十四、Turbo C 2.0使用教程&#xff08;使用Turbo C 2.0编写C语言程序&#xff09; 首先&#xff0c;我们给出一段完整的C语言代码&#xff1a; #include <stdio.h> int main() { puts("hello&#xff0c;world!"…

【mars3d】new mars3d.layer.GeoJsonLayer({实现多孔面遮罩mask: true,

【mars3d】new mars3d.layer.GeoJsonLayer({实现多孔面遮罩 官网测试示例&#xff1a; 1.功能示例(Vue版) | Mars3D三维可视化平台 | 火星科技 测试代码&#xff1a; export function showDraw(isFlyTo) { removeLayer() const geoJsonLayer new mars3d.layer.GeoJsonLaye…

【Spring实战】22 Spring Actuator 入门

文章目录 1. 定义2. 功能3. 依赖4. 配置5. 常用的应用场景1&#xff09;环境监控2&#xff09;运维管理3&#xff09;性能优化 结论 Spring Actuator 是 Spring 框架的一个模块&#xff0c;为开发人员提供了一套强大的监控和管理功能。本文将深入探讨 Spring Actuator 的定义、…

【AI视野·今日NLP 自然语言处理论文速览 第六十八期】Tue, 2 Jan 2024

AI视野今日CS.NLP 自然语言处理论文速览 Tue, 2 Jan 2024 Totally 48 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Computation and Language Papers A Computational Framework for Behavioral Assessment of LLM Therapists Authors Yu Ying Chiu, Ashish Shar…

使用python对二叉树的所有路径求解

对于二叉树这类结构问题&#xff0c;可能会遇到的问题中有需要求给定的一颗二叉树&#xff0c;这颗二叉树的根节点到叶子节点的所有路径的问题&#xff0c;这也是深度优先搜索算法的一个较为常见的应用。 添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; 添…