qt项目书
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++中的一种技术,用于在头文件中声明一个类或结构体,而不定义它。这样可以在不包含具体头文件的情况下,告诉编译器这个类的存在。前向声明的主要用途和优点包括:
- 避免循环依赖:当两个类相互依赖时,可以使用前向声明来避免直接包含对方的头文件,从而打破循环依赖。
- 减少编译时间:通过减少头文件的包含,可以减少编译时的依赖关系,从而加快编译速度。
前向声明的语法很简单,只需在头文件中使用 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单击鼠标便可跳转到项目原码仓库,点赞加关注,收藏不迷路。
更多推荐



所有评论(0)