侧边栏壁纸
博主头像
xiaoming博主等级

累死自己,卷死别人,为了小刘而努力!!!

  • 累计撰写 24 篇文章
  • 累计创建 7 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

[QT] 基于Qt的兼职软件开发

Administrator
2023-09-16 / 0 评论 / 0 点赞 / 19 阅读 / 5426 字 / 正在检测是否收录...

[QT] 兼职软件开发

2023.6.27 更新

  • 新增设置选项,可以任意修改来源、类型、元件、状态等数据
  • 新增传感器成本金额显示和计算,在查看元件页面显示每个传感器的价格和所有传感器的价格,用于计算成本
  • 数据部分金额支持输入表达式
  • 调整部分UI显示和界面

效果展示

1. 前言

之前在做一些兼职的时候,由于时间比较紧,大部分时间都是在寒暑假的时候做的,因此一次接的比较多或者功能比较复杂的,在沟通的时候需要经常的进行修改或者回答一些问题,还要进行很好的售后等等,经常别人刚给我说完我扭头就忘了。本来想找一个软件来进行记录的,但是找了很久几乎用遍了一些能够记录的软件,或者一些笔记类的软件,但是都没有完美适合我的要求,正好之前刚学了QT,所以就萌生了用QT手搓个软件的想法。

2. 预期功能(2023.6.5)

  • 能够按照做兼职的次数添加和删除页面
  • 每条记录至少需要来源、名字、价格、板子类型、邮箱、状态、所需传感器元件、要求、项目文件夹
  • 每个页面可以添加、删除、修改的记录
  • 添加按钮,可以根据选择和输入数据,并将数据存储到数据库中,并在页面中进行显示
  • 修改按钮,可以将之前的添加的记录进行一些修改
  • 删除按钮,可以删除之前添加的记录
  • 设置按钮,可以修改例如有哪些来源、添加新的传感器元件等
  • 统计做过的所有的项目数量和每个页面的项目数量
  • 统计做过所有项目的金额和每个页面的项目金额
  • 在每个页面根据项目的不同完成状态显示不同的颜色
  • 可以根据不同完成的状态进行查询和显示
  • 可以任意方便的查看所需要的元件和要求等操作
  • 可以按照制作的传感器元件进行查询
  • 项目文件夹可以在特定位置建立项目文件夹和项目包含的所需资料文件的文件夹
  • 可以读取项目所在文件夹和包含的资料文件,可以选择所需的文件进行打包和发送

3. 搭建环境

  • QT 6.3.2
  • MinGW 11.2.0 64-bit
  • Qt Creator 10.0.2

4. 主要思路

对于这个项目本身不需要使用到什么复杂的功能,用到的就是QT中的基础控件,更多的复杂点在于代码的编写,特别是对于每条记录实现增加修改删除的功能,和一些方便的查看每个项目的所需元件、要求以及完成状态等操作。

由于想要按照兼职的次数对项目进行记录,所以使用QT的QTabWidget控件按照次数进行添加和删除Tab页面,在每个Tab页面中使用QTableWidget控件的表格功能对项目进行记录,并在表格中添加其他控件实现其他的功能。最后将所有的数据存储到QT自带的SQlite数据库中以便方便之后的操作。

对于QTabWidget控件,本身就有可以任意添加删除Tab页面的功能,所以实现起来也没有什么压力,只需要添加Tab页面点击的信号槽用来确定当前操作的是哪个页面就可以。为了更方便的添加和删除页面将最后的两个页面设置为+和-,用来在点击+时添加一个新的页面,点击-时删除一个页面。

image-20230716000047786

在QTabWidget控件中添加QTableWidget控件,并使用QList记录添加到QTableWidget中的每条记录用来索引之后点击操作的其他功能。每条记录包括来源、名字、价格、板子类型、邮箱、状态、所需传感器元件、要求、项目文件夹,其中邮箱可以通过双击把邮箱复制到系统的剪贴板;状态是一个ComboBox的下拉框,里面包含的是项目完成时间,发送文件资料时间,收取尾款时间等等;传感器元件和要求是一个PushButon按钮,点击之后会显示这个项目用到的所有传感器元件或者要求等;项目文件夹操作是可以在特定位置建立项目文件夹和项目包含的所需资料文件的文件夹,可以读取项目所在文件夹和包含的资料文件,可以选择所需的文件进行打包压缩和发送。

image-20230716000350720

对于添加修改页面可以看作是一样的页面,因为这两个使用到的控件名字等都是一样的,因此把这两个使用同一个ui文件进行显示。传感器元件和要求页面也是一样的。对于这些页面其实可以看作的主界面的一个弹出的第二个界面,因此这样看来他们是同一类的,所以这里使用可一个骚操作,只需要使用一个ui文件显示可以了。

image-20230715235238971

为了能够在这一个ui文件中显示更多的内容,使用ScrollArea的控件容器类来存放更多的控件和内容。将添加删除设置和传感器元件要求等所需的控件分别添加到不同的ScrollArea控件中,只需要在代码中调整不同的ScrollArea控件的大小和位置就可以在实现在一个ui文件中显示不同的类型的界面。

0

评论区