qt项目书

基本功能

在这里插入图片描述

  • 实现登录界面的动态gif图

  • 登陆界面基本布局

  • 登陆界面动画

  • 软件商店自定义软件和超链接

  • 软件的安装和卸载

  • 自定义实现天气预报和音乐播放器

  • 所有的搜索都是基于sqlite的数据库和QNetworkAccessMannage实现的

遇到的问题

1.图片在ui界面可以显示,到了运行的时候加载不出来

解决办法:把png改成jpg,jpg改成png

border:none;background:none;

QPushButton::text { color: transparent; background-color: transparent; }

2.前向声明

前向声明(forward declaration)是C++中的一种技术,用于在头文件中声明一个类或结构体,而不定义它。这样可以在不包含具体头文件的情况下,告诉编译器这个类的存在。前向声明的主要用途和优点包括:

  1. 避免循环依赖:当两个类相互依赖时,可以使用前向声明来避免直接包含对方的头文件,从而打破循环依赖。
  2. 减少编译时间:通过减少头文件的包含,可以减少编译时的依赖关系,从而加快编译速度。

前向声明的语法很简单,只需在头文件中使用 class ClassName;struct StructName; 的形式声明类或结构体即可。

前向声明只能用于指针或引用类型。你不能在前向声明的类中使用其成员函数或数据成员,除非在源文件中包含了该类的具体头文件。

3.更新模型数据的顺序可能会影响视图的显示。在你的情况下,先更新 index.column() + 1 列的数据,然后再更新 index.column() 列的数据,确保了视图能够正确地显示“卸载”项目。

为了确保视图能够正确地显示更新后的数据,你可以在更新模型数据后调用 QTableView::reset()QTableView::update() 来强制视图重新加载数据。

以下是更新模型数据并强制视图重新加载数据的示例代码:

model->setItem(index.row(), index.column() + 1, new QStandardItem("卸载"));
model->setItem(index.row(), index.column(), new QStandardItem(QIcon(":/download.png"), "已安装"));
ui->tableView->reset(); // 或 ui->tableView->update();
错误方法
model->setItem(index.row(), index.column(), new QStandardItem(QIcon(":/download.png"), "已安装"));
model->setItem(index.row(),index.column()+1,new QStandardItem(QIcon(":/delete.png"),"卸载"));

界面展示

1.登录界面

新用户注册账号后,输入账号和密码便可进入(带背景音乐的喔)

在这里插入图片描述

2.用户主界面

初始只有一个软件商店和一个模拟时钟,用户可以通过软件商店安装和卸载软件

在这里插入图片描述

3.软件商店

用户输入想要安装的软件名字便可以进行搜索,单击安装便可以安装软件,单击卸载便可以进行卸载

在这里插入图片描述

4.自定义音乐播放器

实现了音乐播放的所有基本功能:搜索,上一首,暂停,下一首,单曲循环,列表循环,音乐收藏,歌词同步

在这里插入图片描述

5.自定义天气预报

基本实现了天气预报的功能:地区搜索,动态显示,天气预测,天气预警,数据分析等

在这里插入图片描述

在这里插入图片描述

6.其他软件

由于目前水平有限,其他软件都只是按钮贴图加openUrl()超链接跳转间接实现

在这里插入图片描述

不足

1.个人审美不高,设计的界面效果有待提高

2.实现的过程存在粗制滥造环节,面向结果编程

项目代码

按住Ctrl单击鼠标便可跳转到项目原码仓库,点赞加关注,收藏不迷路。

https://gitee.com/wxx2024/program.git

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐