Qt+css绘制标题

        之前学过html和小程序,帮老师做项目的时候也用过vue,在想qt绘制界面是不是也可以使用css,然后查了一些资料,绘制了一个标题,准备用到智能家居的上位机上面。

        成果

         源码

        重写了paintEvent函数和TimeEvent函数,一个用于绘制标题,一个用于刷新右边的时间

        代码里面的注释比较详细

        

Widget::Widget(QWidget *parent): QWidget(parent)
{//可以通过样式表设置背景this->setAttribute(Qt::WA_StyledBackground);/*这行代码为窗口或控件设置了一个样式表,用于定义其外观样式。样式表使用CSS(层叠样式表)语法来描述界面元素的外观。background-image: url(:/image/res/head_bg.png); 设置背景图像。这里使用的资源路径可能是一个资源文件或者资源别名,指向一个图片文件。background-repeat: no-repeat; 确保背景图像不会重复。background-position: center; 设置背景图像居中显示。background-attachment: fixed; 这通常用于浏览器背景,确保背景图像固定,不随页面滚动而滚动*/this->setStyleSheet("background-image: url(:/new/prefix1/res/head_bg.png); background-repeat: no-repeat; background-position: center; background-attachment: fixed;");//定时器 1s 1s一次刷新startTimer(1000);
}
void Widget:: timeEvent(QTimerEvent *){//刷新update();
}
void Widget:: paintEvent(QPaintEvent *){QPainter painter(this);//抗锯齿、平滑图像转换和抗锯齿文本painter.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform | QPainter::TextAntialiasing); // 抗锯齿和使用平滑转换算法painter.setPen(QColor(255, 255, 255));QFont font = this->font();font.setPixelSize(42);painter.setFont(font);//居中painter.drawText(rect(), Qt::AlignCenter, "智能家居控制平台");QDateTime currentDateTime = QDateTime::currentDateTime();QString formattedDateTime = currentDateTime.toString("yyyy年M月d日 hh:mm:ss");//半透明的白色(alpha值为140,即70%不透明度painter.setPen(QColor(255, 255, 255, 140));font.setPixelSize(18);painter.setFont(font);//右对齐painter.drawText(rect().marginsRemoved(QMargins(10, 10, 10, 10)), Qt::AlignVCenter | Qt::AlignRight, formattedDateTime);
}

        

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/442585.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CAM350开短路检查操作

本质: 使用CAM350进行开短路检查,实际就是从Gerber文件中提取网表与从Allegro中产生的IPC-D-356A格式网表进行比较。 1.首先打开CAM350,导入网表: 2.设置各层的属性类型: (1)精度设置,这里需要和Allegro中出Gerber文件时设置的精度保持一致,坐标和零压缩设置保持默认…

抵御.360勒索病毒威胁:解密文件的有效方法与预防措施

导言: 近来,网络犯罪的一种新型形式——.360勒索病毒,备受关注。这种病毒通过加密用户文件,要求支付赎金以获取解密密钥。本文91数据恢复将深入介绍.360勒索病毒的特点,同时提供一些有效的恢复方法,并分享…

docker在windows创建卷后本地找不到

使用 docker volume create html 创建卷之后虽然能成功创建,但是通过 docker inspect html 查看文件地址时给出的Mountpoint地址却是 D:\nacos\docker>docker inspect html [{"CreatedAt": "2024-01-31T03:51:23Z","Driver":…

【Java程序设计】【C00171】基于SSM的智慧篮球馆预约管理系统(论文+PPT)

基于SSM的智慧篮球馆预约管理系统(论文PPT) 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于ssm的智慧篮球馆预约管理系统 本系统分为前台、管理员以及学生3个功能模块。 前台:当游客打开系统的网址后,首先看到…

【FAS Survey】《Deep learning for face anti-spoofing: A Survey》

PAMI-2022 最新成果:https://github.com/ZitongYu/DeepFAS 文章目录 1 Introduction & Background1.1 Face Spoofing Attacks1.2 Datasets for Face Anti-Spoofing1.3 Evaluation Metrics1.4 Evaluation Protocols 2 Deep FAS with Commercial RGB Camera2.1 H…

农业植保无人机行业研究:预计2025年市场规模可达115亿元

农业植保无人机行业市场投资前景现状如何?农业植保无人机市场,包括无人机自身技术、性能标准和植保标准。农业植保无人机应用植保机喷洒农药对我国而言,不仅具有很大的经济价值,还具有社会价值:农业植保机作业不仅有超高的工作效…

expect 语言 Here Document 多行重定向

一、expect是什么 1.1 expect定义 是建立在tcl(tool command language)语言基础上的一个工具,常被用于进行自动化控制和测试,解决shell脚本中交互的相关问题 1.2 怎么安装expect yum install -y expect 进行安装 二、怎么使用e…

轻量级低代码应用开发平台——JNPF

目录 一、技术介绍 技术架构 二、设计原理 三、推荐JNPF的理由 1.多项目并存:快速搭建基本框架 2.可视化拖拽布局器:轻松设计界面 3.工作流引擎:简化复杂业务流程 4.大屏设计器:丰富的统计图组件,让数据可视化…

深度强化学习(王树森)笔记08

深度强化学习(DRL) 本文是学习笔记,如有侵权,请联系删除。本文在ChatGPT辅助下完成。 参考链接 Deep Reinforcement Learning官方链接:https://github.com/wangshusen/DRL 源代码链接:https://github.c…

【C++航海王:追寻罗杰的编程之路】引用、内联、auto关键字、基于范围的for、指针空值nullptr

目录 1 -> 引用 1.1 -> 引用概念 1.2 -> 引用特性 1.3 -> 常引用 1.4 -> 使用场景 1.5 -> 传值、传引用效率比较 1.6 -> 值和引用作为返回值类型的性能比较 1.7 -> 引用和指针的区别 2 -> 内联函数 2.1 -> 概念 2.2 -> 特性 3 -…

C语言 | 求最大/小值小技巧:fmax、fmin函数

如果你只是因为不想用C语言手写max、min函数,就直接去用iostream中的max、min函数的话,这篇文章可能会有些许帮助。 😇 fmax、fmin函数用于确定两个指定值的较大/较小值。 头文件 math.h(或者cmath)。 定义 double …

Kaggle竞赛系列_SpaceshipTitanic金牌方案分析_数据分析

文章目录 【文章系列】【前言】【比赛简介】【正文】(一)数据获取(二)数据分析1. 缺失值2. 重复值3. 属性类型分析4. 类别分析5. 分析目标数值占比 (三)属性分析1. 对年龄Age分析(1)…