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

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=0self.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=Trueself.timer.setSingleShot(True)  # 单次触发模式self.timer.timeout.connect(self.close)self.timer.start(6000)  # 5000毫秒等于5秒self.exec() # 置顶,其它窗口不能操作def queren(self):'''确认'''self.close()  # 弹窗确认按钮self.qr=1self.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.hqwc.cn/news/323777.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CAVER: Cross-Modal View-Mixed Transformer for Bi-Modal Salient Object Detection

目录 一、论文阅读笔记: 1、摘要: 2、主要贡献点: 3、方法: 3.1 网络的总体框架图: 3.2 Transformer-based Information Propagation Path (TIPP) 3.3 Intra-Modal/Cross-Scale Self-Attention (IMSA/CSSA) Q1…

【python】使用fitz包读取PDF文件报错“ModuleNotFoundError: No module named ‘frontend‘”

【python】使用fitz包读取PDF文件报错“ModuleNotFoundError: No module named ‘frontend’” 正确解决过程 在读取PDF文件时,我使用了fitz包,当使用代码import fitz导入该包时,出现了报错: 于是我直接使用以下代码安装fronten…

假设法做线段树

合并lazy-tag:指的是把一些能合并的合并了,如果有多种 lazy-tag 的话,每一层最多只存在一个tag。 下面,这是一道区间乘与区间加的混合。 P3373 【模板】线段树 2 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)https://www.luogu…

虾皮之家(Shopee)的数据分析插件:优化销售策略的利器

在如今竞争激烈的电商市场中,卖家们需要不断优化自己的销售策略,以吸引更多的用户并提升销售业绩。虾皮之家(Shopee)作为一家知名的电商平台,为卖家提供了一系列的数据分析插件,帮助卖家更深入地分析店铺数…

Java项目:111SpringBoot在线论坛

博主主页:Java旅途 简介:分享计算机知识、学习路线、系统源码及教程 文末获取源码 一、项目介绍 在线论坛是由SpringBootMybatis开发的,论坛提供用户注册,整体分为管理员和普通用户两种角色。管理员端可以生产邀请码,…

IntelliJ IDEA远程查看修改Ubuntu上AOSP源码

IntelliJ IDEA远程查看修改Ubuntu上的源码 本人操作环境windows10,软件版本IntelliJ IDEA 2023.2.3,虚拟机Ubuntu 22.04.3 LTS 1、Ubuntu系统安装openssh 查看是否安装: ssh -V 如果未安装: sudo apt install openssh-server # 开机自启…

太牛了!微信批量自动加好友你还不知道吗?

你还在一个一个地输入号码或微信号,再手动进行搜索添加好友吗?这样不仅费时费力,还可能会出现错误或是漏加的情况。 今天给大家分享一个支持多个微信号自动批量添加好友的宝藏工具,解放你的双手,帮你节省大量的时间和…

静态网页设计——宠物狗狗网(HTML+CSS+JavaScript)

前言 声明:该文章只是做技术分享,若侵权请联系我删除。!! 感谢大佬的视频: https://www.bilibili.com/video/BV1nk4y1X74M/?vd_source5f425e0074a7f92921f53ab87712357b 使用技术:HTMLCSSJS(…

微信小程序使用mqtt开发可以,真机不行

以下可以解决我的问题,请一步一步跟着做,有可能版本不一样就失败了 一、下载mqtt.js 前往蓝奏云 https://wwue.lanzouo.com/iQPdc1k50hpe 下载好后将.txt改为.js 然后放入项目里 二、连接mqtt const mqtt require(../../utils/mqtt.min); let cli…

后端开发——JDBC的学习(三)

本篇继续对JDBC进行总结: ①通过Service层与Dao层实现转账的练习; ②重点:由于每次使用连接就手动创建连接,用完后就销毁,这样会导致资源浪费,因此引入连接池,练习连接池的使用; …

又一券商被点名,网络安全问题不容忽视

12月25日,黑龙江证监局发布公告表示,江海证券存在关于IT治理、网络安全管理的内部决策、执行机制不健全;公司App个人信息保护合规性检测不充分,App强制、频繁、过度索取权限等问题。因此,黑龙江证监局决定对江海证券采…

理解二叉树的遍历(算法村第七关白银挑战)

二叉树的前序遍历 144. 二叉树的前序遍历 - 力扣(LeetCode) 给你二叉树的根节点 root ,返回它节点值的 前序 遍历。 示例 1: 输入:root [1,null,2,3] 输出:[1,2,3]解 LeetCode以及面试中提供的方法可能…