《Qt/UI美化实战课程》第三章 天气预报UI(纯代码写布局)(9讲)

《Qt/UI美化实战课程》新课首发

(1)无边框窗口(11讲)

(2)图标字体(10讲)

(3)官方图表QChart:曲线、柱状图、饼图(20+讲)

(4)第三方图表QCustomPlot:曲线、柱状图、饼图(20+讲)

(5)语法高亮(12+讲)

(6)仪表盘(10+讲)

(7)天气预报(11+讲)

(8)基础控件(15+讲)

(9)高级控件(12+讲)

(10)精美换肤(15+讲)

详情参见个人主页的置顶视频(明王出品,必属精品)

需要系统跟明王学习的小伙伴,可以直接加明王W-X:coding4096

(1)总课时:超 120+ 讲,每日更新

(2)讲课风格:从零新建项目,从零一行行写代码

(3)提供资料:视频教程+配套源码+详细笔记

本章实现的天气预报项目,整体效果如下:

完整项目的效果是:

在左上角输入要查询的城市,然后点击查询按钮,就会发送 HTTP请求给服务器,请求回来的天气数据 JSON 格式

通过解析 JSON 可以获取以下信息:

  • 今天的信息

      温度、湿度、风向、风力、天气类型(晴、多云、小雨等)、PM2.5、温馨提示、感冒指数、日出日落

  • 未来15天的信息

      日期、星期、天气类型(晴、多云、小雨等)、PM25、最高温、最低温

需要观看完整项目的小伙伴,请移步我的 B 站(明王讲Qt)观看完整视频!

【QT开发专题-天气预报】1. 效果演示、技术分析_哔哩哔哩_bilibili

而这里,我们专注于手写整个界面, 不涉及 JSON 解析以及 HTTP 通信。本章涉及的技术点如下:

1. 纯代码手写布局

为什么要手写布局呢?

  • 实际工作中,基本就是手写布局,很少用设计师界面

  • 使用设计师界面,拖拽控件完成布局后,最终也要转化成 C++ 代码

  • 往往,布局是动态的,不是一成不变的,就无法提前拖放控件来完成布局

  • 手写布局,能够更深入理解布局,便于更精细地调整

2. 样式表的设置

合理地使用样式表,可以使界面更加美观,这里设置的样式表如下:

  • 背景图片

      为整个窗体设置一张背景图片

  • 背景色

      设置控件背景透明,或者设置一个透明度

  • 圆角

      为控件设置圆角

  • 字体颜色和大小

      为控件设置合适的字体颜色和字体大小

3. 事件

为了界面的美观,我们将窗口设置为无标题栏,这样就无法通过右上角的【关闭】按钮,退出程序。

因此增加了右键菜单退出的功能

还重写了鼠标移动事件,让窗口可以跟随鼠标移动

4. 绘图

绘制高低温曲线,根据每天高低温数据,可以绘制一个曲线,更直观地展示温度变化趋势

  • QPainter

  • QChart

  • QCustomPlot

5. 资源文件

根据不同的天气类型,还可以用不同的图标进行展示,更加直观

而这些图标通常会放到资源文件中,这样它们可以一同被打包进 Qt 的可执行程序中

  • 20
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
美化QtUI界面设计可以通过以下几种方法实现: 1. 隐藏窗口的标题栏(包括最小化、最大化、关闭按钮)可以在构造函数中添加`setWindowFlags(Qt::FramelessWindowHint);`函数来实现\[1\]。 2. 给按钮添加背景图片可以使用`setStyleSheet("border-image:url(me.png)");`来设置按钮的样式\[1\]。 3. 给界面添加背景图片可以使用`setStyleSheet("QDialog#dialog{border-image:url(me.png)}");`来设置界面的样式\[1\]。 4. 满屏显示应用程序可以使用`showFullScreen();`函数来实现\[1\]。 5. 将带有背景图片的Qt程序移植到开发板时,需要将图片和执行文件放在一起,并使用png格式的图片\[1\]。 6. 制作不规则的Button可以使用`setMask(pix.mask());`来设置按钮的形状\[1\]。 此外,还可以通过加载QSS文件来设置UI界面的样式。新建一个文件命名为MyStyleSheet.qss,填入样式属性代码,例如`QPushButton{ border-radius: 6px; background-color: rgb(165,165,165); }`,然后使用`setStyleSheet`函数加载QSS文件\[2\]。 还可以通过设置窗口的属性来实现界面美化,例如隐藏标题栏可以使用`setWindowFlags(Qt::FramelessWindowHint|Qt::WindowMinimizeButtonHint);`来隐藏标题栏,使用`setAttribute(Qt::WA_TranslucentBackground);`来实现窗体的透明效果,然后使用`resize`函数将窗口的大小设置为图片的大小\[3\]。 综上所述,可以通过以上方法来美化QtUI界面设计。 #### 引用[.reference_title] - *1* *3* [QT学习之路————QT界面美化](https://blog.csdn.net/huangan_xixi/article/details/50878046)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Qt UI界面美化](https://blog.csdn.net/QtCompany/article/details/130529371)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大轮明王讲QT

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值