[完结24章]Qt 全流程实战企业级项目 - 云对象存储浏览器
网盘地址:https://pan.baidu.com/s/1cXFbT5P60xhDNrygWFAQUQ 提取码:p3es
腾讯微云下载地址:https://share.weiyun.com/2rNgTVDG 密码:naikn9
一、什么是QT?
Qt是一个跨平台的C++图形用户界面库,由挪威TrollTech公司出品,包括Qt、基于FrameBuffer的Qtopia Core、快速开发工具Qt Designer和国际化工具Qt Linguist等部分。Qt支持所有的UNIX系统,当然也包括Linux系统,还支持WinNT/Win2k、Windows 95/98平台。
二、QT的优点有哪些?
1、作为桌面前端的SDK,成熟度很高;
2、由商业公司控制,技术路线很稳定;
3、API没有大量采用晦涩难懂的模板,大部分都是传统的面向对象的编程方式,而且文档齐全,不难入门,学习曲线平缓;
4、2D渲染方面,能和OpenGL\Vulkan、DirectX、Metal很好的适配。
三、实例程序功能
创建一个 Widget Application 项目 samp2_2,在创建窗体时选择基类 QDialog,生成的类命名为 QWDialog,并选择生成窗体。
如此新建的项目 samp2_2 有一个界面文件 qwdialog.ui,一个头文件 qwdialog.h 和源程序文件 qwdialog.cpp。此外,还有项目文件 samp2_2.pro 和主程序文件 main.cpp。
qwdialog.ui 界面文件设计时界面如图 1 所示。程序的主要功能是对中间一个文本框的文字字体样式和颜色进行设置。
四、接下来给大家讲解一个项目,Qt 全流程实战企业级项目 - 云对象存储浏览器项目,以下是代码实战部分:
<!-- 引入 redis 依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<!--<version>2.1.5.RELEASE</version>-->
</dependency>
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
</dependency>
<!-- jackson -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<!-- apache 工具类 -->
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
</dependency>
<!-- google 工具类 -->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</dependency>
<!-- joda-time 时间工具 -->
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
</dependency>
拷贝RedisOperator(见源码)
controller测试redis中set和get
@Autowired
private RedisOperator redis;
@GetMapping("/redis")
public Object redis() {
redis.set("name", "风间影月");
return redis.get("name");
}
浏览器会限制对域名的调用,不同的域名发起请求到不同的接口会出现跨域问题,为了解决这一问题,可以通过springboot来解决,参考如下代码,主要开放限制域名为*,也就是所有进行调用接口。此配置类为项目配置,可以直接放入任何项目中即可使用。
package com.imooc.api.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;
@Configuration
public class CorsConfig {
public CorsConfig() {
}
@Bean
public CorsFilter corsFilter() {
// 1. 添加cors配置信息
CorsConfiguration config = new CorsConfiguration();
config.addAllowedOrigin("*");
// 设置是否发送cookie信息
config.setAllowCredentials(true);
// 设置允许请求的方式
config.addAllowedMethod("*");
// 设置允许的header
config.addAllowedHeader("*");
// 2. 为url添加映射路径
UrlBasedCorsConfigurationSource corsSource = new UrlBasedCorsConfigurationSource();
corsSource.registerCorsConfiguration("/**", config);
// 3. 返回重新定义好的corsSource
return new CorsFilter(corsSource);
}
}
用户一旦登录注册成功,则需要设置会话,由于分布式微服务,使用分布式会话,用户token等信息存入redis。与此同时,在cookie中也需要设置用户的相关信息。
完善 PassportController.doLogin()
int userActiveStatus = user.getActiveStatus();
// 如果用户状态已经被封了,则不设置会话与cookie信息
if (userActiveStatus != UserStatus.FROZEN.type) {
// 3. 用户的分布式会话设置
String uniqueToken = UUID.randomUUID().toString().trim();
redis.set(REDIS_USER_TOKEN + ":" + user.getId(), uniqueToken);
// 4. 用户userId与token放入cookie
setCookie(request, response, "utoken", uniqueToken, COOKIE_MONTH);
setCookie(request, response, "uid", user.getId(), COOKIE_MONTH);
}
// 5. 用户登录成功则需要删除已经使用过的短信验证码,该验证码只能匹配使用一次,过后作废
// redis.del(MOBILE_SMSCODE + mobile);
// 6. 用户状态:未激活或者已激活,返回给前端,用于页面跳转
return GraceJSONResult.ok(userActiveStatus);

普通网友
- 粉丝: 27
最新资源
- 基于LCL滤波器的有源电力滤波器APF MATLAB仿真选阶补偿及软件锁相环控制稳定研究
- AI驱动的物理交互艺术作品沉浸式体验机制设计与用户感知数据分析.docx
- AI在工程项目中的应用实例.docx
- 步态识别技术:基于外观特征的算法综述与展望.docx
- FAERS数据库在阿基仑赛研究中的应用.docx
- ienti过程模型驱动的AI课程教改路径探索研究.docx
- 低空时空网络架构设计及其在智慧城市中的应用.docx
- 改进极光优化算法在光伏系统中的应用研究.docx
- 动态环境下的传感器标定方法与地图匹配算法研究.docx
- 高效PCB缺陷检测新算法:改进YOLOv8n模型研究.docx
- 互联网企业KPI导向的跨部门协同绩效考核体系设计与实证研究.docx
- 基于大模型技术的智慧图书馆创新服务模式探析.docx
- 基于LLVM框架的模块化编译器前端设计与优化实现研究.docx
- 基于分形算法的3D游戏场景动态生成技术研究.docx
- 基于特征选择和优化算法的研究.docx
- 基于物联网技术的边坡安全监测系统架构优化与发展趋势预测.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈


