| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> 【开发记录】基于C++,使用QT+VS编写软件 -> 正文阅读 |
|
[C++知识库]【开发记录】基于C++,使用QT+VS编写软件 |
本文主要用来记录一下自己用C++及QT自己开发软件的经过。 一、背景开发背景,是针对公司目前外部采购的零部件,开发一个生成料号的系统。因为物料编号有一个统一的模板(格式),而且不能重复。 我的软件就是避免大家手动填写表格造成重复及格式混乱的问题。 二、思路我的想法就是通过QT编写一个ui界面,界面根据料号格式的需求,让大家按需填写。填写完成后生成对应的物料编号,并保存在一个数据库中。如果重复 or 格式错误则拒绝保存。 关于数据库,最初的想法使用MySQL,比较高大上。奈何本人不会……恰巧大家都有公司统一访问权限的公盘,那么思路二,就是料号都用csv格式的一个文件保存在公盘中。类似于一个本地局域网的“数据库”。当然这样也存在问题,后面再说。 三、开工有了思路,就开始编写工作。 第一步,就是可行性的问题,因为之前做过基于Python的PyQT软件,所以觉得大差不差,这个思路是走得通的; 第二步,配置环境。首先安装了常用的Visual Studio 2022。这是挖了一个坑。 网上查到可以利用VS的QT插件来编写代码,VS的体验要比QCreator好得多。于是直接下载了QT的插件。目前都很顺利。 直到安装QT,我首先下载了QT5.22版本。安装很久,而且安装了很多没用的模块(比如安卓模块等),安装好后发现找不到编译器和调试器。搜索了很久无果。最后毅然卸载,安装了新的QT6.3.1,问题迎刃而解。 第三步,开始开发。首先使用QT的designer,拖动并规划了一个大致的ui界面。然后使用VS的QT插件对生成的QT的.pro文件进行了转换。快速学习了一下转化后的文件,随后开始编写具体功能的代码。 之前实习写PyQt的软件,每天的工作没有记录,修改也不记录。最后复盘起来难度很大。这次尝试记录一份开发日志文件,同时针对每一次大的的修改做到:①添加代码备注,包括修改日期和修改原因;②大修改之前,将当前的整个工程备份。这样就不怕后期因为手欠而导致前功尽弃的状况。 贴上自己的开发日志:
这里针对开发问题进行记录解答: 问题1:如何设置使得textEdit将tab键按下视为切换焦点而不是输入? 分析:之所以存在这个问题,是因为我想实现通过Tab键切换不同的控件,结果发现使用Tab键后会输入一个制表符(大大空格)。网上百度了许多办法都不管用。 A:学会查看QT的官方文档,有个很简单的方法,setTabChangesFocus(true),功能如其名,设置即可。: 问题2:如何判断重复? 分析:问题产生是因为我将所有的料号都push到一个QStringList中,如果通过遍历,只能实现遍历到的当前元素与目标元素对比。无法做到一一对比。 A:还是QT的官方文档救了我,只需要使用QStringList的contains(目标元素)的方式即可。返回一个bool值的结果。 问题3:设置文本框显示提示符以及鼠标悬停显示提示字符 分析:这个是我的改进功能,为了方便用户。 A:如果文本框中显示灰色的提示字符【setPlaceholderText("想要显示的提示内容")】,用户输入内容后消失的方式,存在的问题是有些很短的文本框(只需输入一个字符的)却存在很长的说明文字,导致显示不完整。 而鼠标悬停显示说明文字的方式就更美观。【setToolTip("想要显示的提示内容")】 问题4:设置TextEdit仅能输入一个字母、限制输入长度。 分析:我有一个文本框,只允许输入一位字母。 A:解决方法是使用正则表达,QT的正则表达是QRegularExpression。
当然,目前只实现了不能输入数字,如何排除汉字、中英文标点、空白字符?还需要添加,其实就是正则表达还没学透。后续要继续优化。 四、结果展示有涉及到保密的内容用蓝笔涂抹了 软件启动,提示用户首先配置CSV(保存料号)的地址。? 下拉框中针对不同的材料种类进行选择,无需一边查看文档,一边填写。? ? 一个简单的帮助按钮,用户点击可以获得帮助。?? 点击配置CSV地址按钮,用户需要找到自己公盘的csv文件所在地。? ? 如果用户点击取消或者没有点击配置csv地址按钮,点击保存料号会弹出警告窗口。? ? 用户输入了对应的料号,点击生成料号,可以在软件底部预览。? ? 确认料号无误,点击保存至本地,即可将生成的料号写入csv文件中。? ? 如果用户未填写内容,点击生成料号按钮会弹出错误窗口。? 如果用户生成了重复的料号,点击保存按钮会弹出错误窗口。? ? 这是最终保存在本地的料号展示。? ?五、总结这是自己第一次从一个一句话的需求产出一个软件。 一定要做好开发的规划; 一定要做好日志文件的记录; 一定要做好软件版本更迭的记录。 开发完成后自己可以多测测bug,模拟用户的各种操作(正确的or错误的); 善用QT官方文档,善用baidu,善用qDebug(); 最后,文件都保存在本地csv,万一有人删除了怎么办?万一有人恶意修改了怎么办? 后期要解决这个问题。 Anyway, 每天进步一点点! ? |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 16:48:59- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |