当前位置: 首页 > news >正文

QT自定义控件0-360°刻度尺

支持0到360°,360到0°的过度。
直接上代码,可以直接用,使用的paintevent事件实现的,没啥好讲的。
请添加图片描述
.cpp

void Widget::drawCourse(QPainter& p,QPen pen,QFont font)
{double currentNumber = m_ang;p.setBrush(Qt::black);p.drawRect(rect());//航向刻度图pen.setColor("#ffffff");pen.setWidth(2);p.setPen(pen);font.setPointSize(20);p.setFont(font);p.drawLine(0,0,width(),0);int mainScale = 360;double movePos = currentNumber*35-width()/2;//360前半截for (int i = 0; i < mainScale+1; ++i) {if (i%5 == 0){pen.setWidth(2);p.setPen(pen);p.drawLine(0+i*35-movePos,0,0+i*35-movePos,26);p.drawText(0+i*35-30-movePos,33,60,30,Qt::AlignCenter,QString::number(i%360));}else{pen.setWidth(1);p.setPen(pen);p.drawLine(0+i*35-movePos,0,0+i*35-movePos,20);}}//0后半截,360前半截double startPt = 0;double showSpan = width()/35.00;if (currentNumber > 360 - showSpan || currentNumber < 360 - showSpan){if (currentNumber > 360 - showSpan)startPt = (360 - currentNumber + showSpan/2)*35;elsestartPt = (showSpan/2 - currentNumber)*35 - 35*mainScale;for (int i = 0; i < mainScale+1; ++i) {if (i%5 == 0){pen.setWidth(2);p.setPen(pen);p.drawLine(0+i*35+startPt,0,0+i*35+startPt,26);p.drawText(0+i*35-30+startPt,33,60,30,Qt::AlignCenter,QString::number(i%360));}else{pen.setWidth(1);p.setPen(pen);p.drawLine(0+i*35+startPt,0,0+i*35+startPt,20);}}}//航向中线p.setPen(QPen(QColor("#009af7")));p.setBrush(QBrush(QColor("#009af7")));QPolygon pol;pol<<QPoint(width()/2,72)<<QPoint(width()/2-17,103)<<QPoint(width()/2+16,103);p.drawPolygon(pol);
}

相关文章:

QT自定义控件0-360°刻度尺

支持0到360&#xff0c;360到0的过度。 直接上代码&#xff0c;可以直接用&#xff0c;使用的paintevent事件实现的&#xff0c;没啥好讲的。 .cpp void Widget::drawCourse(QPainter& p,QPen pen,QFont font) {double currentNumber m_ang;p.setBrush(Qt::black);p.dra…...

c语言0基础笔记

目录 前言 第01章_C语言入门 1.1初识计算机语言 1.2初识C语言 1.3第一个c程序 1.4IDE使用 1.5注释 1.6第一个c程序剖析 1.7printf()输出格式 第02章_变量与进制 2.1关键字 2.2标识符 2.3变量 2.4基本数据类型的使用 2.5变量间的运算规则 2.6常量 2.7输入/输出函…...

Vue 中 Element UI 的 el-table 组件实现动态表头和内容

在 Vue 中使用 Element UI 的 el-table 组件时&#xff0c;为了实现动态表头&#xff08;包括第一层表头及其下的嵌套表头或子表头&#xff09;。需要后端返回的数据结构能够体现表头层级关系以及对应的数据结构相匹配。这样的数据通常是一个嵌套数组&#xff0c;每个表头单元可…...

安装sqlserver后—无法连接到 127.0.0.1,1433\sqlexpress

报错问题如下&#xff1a; 标题: 连接到服务器 ------------------------------ 无法连接到 127.0.0.1,1433\sqlexpress。 ------------------------------ 其他信息: 登录失败。该登录名来自不受信任的域&#xff0c;不能与 Windows 身份验证一起使用。 (Microsoft SQL Serve…...

Python JSON解析校验格式,输出错误信息的工具

引言&#xff1a; 在现代软件开发中&#xff0c;JSON&#xff08;JavaScript Object Notation&#xff09;作为一种轻量级的数据交换格式&#xff0c;被广泛应用于前后端数据传输和存储。然而&#xff0c;由于JSON的灵活性和复杂性&#xff0c;解析JSON时常常会遇到格式错误的问…...

物联网网关与plc怎么连接?

物联网网关与plc怎么连接&#xff1f; 物联网是当今社会中最热门的技术之一&#xff0c;而物联网网关则是连接物联网设备与云平台的核心设备之一。物联网网关在连接各种传感器和设备时起着至关重要的作用。而另一种广泛应用于工业控制和自动化领域的设备是可编程逻辑控制器&…...

HANA:存储过程(Procedures) DEBUG

作者 idan lian 如需转载备注出处 如果对你有帮助&#xff0c;请点赞收藏~~~ 1.场景 最近不是写了蛮多hana的存储过程吗&#xff0c;如果是简单的增删改查&#xff0c;如果结果错了&#xff0c;还是比较容易找到错误在哪的&#xff0c;但是逐渐假如循环啊&#xff0c;变量判…...

Oracle行转列函数,列转行函数

Oracle行转列函数&#xff0c;列转行函数 Oracle 可以通过PIVOT,UNPIVOT,分解一行里面的值为多个列,及来合并多个列为一行。 PIVOT PIVOT是用于将行数据转换为列数据的查询操作(类似数据透视表)。通过使用PIVOT&#xff0c;您可以按照特定的列值将数据进行汇总&#xff0c;并将…...

线程同步--生产者消费者模型

文章目录 一.条件变量pthread线程库提供的条件变量操作 二.生产者消费者模型生产者消费者模型的高效性基于环形队列实现生产者消费者模型中的数据容器 一.条件变量 条件变量是线程间共享的全局变量,线程间可以通过条件变量进行同步控制条件变量的使用必须依赖于互斥锁以确保线…...

React hook+AntD pro实现Form表单的二次封装

React hookAntD pro实现Form表单的二次封装 封装Form表单1、在src/types下新建 antd/form/index.ts&#xff0c;进行Form表的配置、数据等类型的限制2、在 根目录/components 下新建 BaseForm/index.tsx文件3、在BaseForm/createFormIpt.tsx中&#xff0c;抽取对不同类型的表单…...

python异步切片下载文件(内置redis获取任务 mongo更新任务状态等)

异步切片下载二进制文件并上传桶删除本地文件 import json import os import asyncio from urllib import parseimport aiohttp import aioredis from motor.motor_asyncio import AsyncIOMotorClient from retrying import retry from minio import Minio from minio.error im…...

《吐血整理》进阶系列教程-拿捏Fiddler抓包教程(10)-Fiddler如何设置捕获Firefox浏览器的Https会话

1.简介 经过上一篇对Fiddler的配置后&#xff0c;绝大多数的Https的会话&#xff0c;我们可以成功捕获抓取到&#xff0c;但是有些版本的Firefox浏览器仍然是捕获不到其的Https会话&#xff0c;需要我们更进一步的配置才能捕获到会话进行抓包。 2.宏哥环境 1.宏哥的环境是Wi…...

阿里云云原生弹性方案:用弹性解决集群资源利用率难题

作者&#xff1a;赫曦 随着上云的认知更加普遍&#xff0c;我们发现除了以往占大部分的互联网类型的客户&#xff0c;一些传统的企业&#xff0c;一些制造类的和工业型企业客户也都开始使用云原生的方式去做 IT 架构的转型&#xff0c;提高集群资源使用率也成为企业上云的一致…...

Spring-BeanPostProcessor PostConstruct init InitializingBean 执行顺序

执行顺序探究 新建一个对象用于测试 Component public class Student implements InitializingBean {private String name;private int age;public String getName() {return name;}public void setName(String name) {this.name name;}public int getAge() {return age;}pu…...

【算法】递归

递归 递归初始递归&#xff1a;数列求和递归的应用&#xff1a;任意进制转换递归深度限制递归可视化&#xff1a;分形树递归可视化&#xff1a;谢尔宾斯基Sierpinski三角形递归的应用&#xff1a;汉诺塔递归的应用&#xff1a;探索迷宫 分治策略和递归优化问题兑换最少个数硬币…...

DC-1靶机刷题记录

靶机下载地址&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1GX7qOamdNx01622EYUBSow?pwd9nyo 提取码&#xff1a;9nyo 参考答案&#xff1a; https://c3ting.com/archives/kai-qi-vulnhnbshua-tiDC-1.pdf【【基础向】超详解vulnhub靶场DC-1】 https://www.bilibi…...

rust跟我学七:获取外网IP地址

图为RUST吉祥物 大家好,我是get_local_info作者带剑书生,这里用一篇文章讲解get_local_info是怎么获取到本机的外网IP地址。 首先,先要了解get_local_info是什么? get_local_info是一个获取linux系统信息的rust三方库,并提供一些常用功能,目前版本0.2.4。详细介绍地址:[…...

华为:交换机忘记console密码重置

一、背景 许多旧项目经过长时间使用后&#xff0c;因为没有特定的管理运维人员&#xff0c;初始对接人也将初始账号密码等重要信息丢失&#xff0c;现需要进后台查看配置或更改网络配置&#xff0c;需重置密码 二、重置密码&#xff0c;不重置设备方法 1、使用console插入交…...

2024年甘肃省职业院校技能大赛信息安全管理与评估 样题三 模块一

竞赛需要完成三个阶段的任务&#xff0c;分别完成三个模块&#xff0c;总分共计 1000分。三个模块内容和分值分别是&#xff1a; 1.第一阶段&#xff1a;模块一 网络平台搭建与设备安全防护&#xff08;180 分钟&#xff0c;300 分&#xff09;。 2.第二阶段&#xff1a;模块二…...

Go 中 slice 的 In 功能实现探索

文章目录 遍历二分查找map key性能总结 之前在知乎看到一个问题&#xff1a;为什么 Golang 没有像 Python 中 in 一样的功能&#xff1f;于是&#xff0c;搜了下这个问题&#xff0c;发现还是有不少人有这样的疑问。 补充&#xff1a;本文写于 2019 年。GO 现在已经支持泛型&am…...

Vin象棋:基于Yolov5的中国象棋智能视觉辅助系统,重新定义数字化对弈体验

Vin象棋&#xff1a;基于Yolov5的中国象棋智能视觉辅助系统&#xff0c;重新定义数字化对弈体验 【免费下载链接】VinXiangQi Xiangqi syncing tool based on Yolov5 / 基于Yolov5的中国象棋连线工具 项目地址: https://gitcode.com/gh_mirrors/vi/VinXiangQi 在数字化对…...

PyTorch 2.8镜像参数详解:CUDA 12.4驱动550.90.07环境兼容性避坑指南

PyTorch 2.8镜像参数详解&#xff1a;CUDA 12.4驱动550.90.07环境兼容性避坑指南 1. 镜像核心配置解析 PyTorch 2.8深度学习镜像是一个经过深度优化的通用计算环境&#xff0c;专为现代AI工作负载设计。这个镜像最显著的特点是完整适配NVIDIA最新计算架构&#xff0c;基于RTX…...

WinForms界面美化:用SunnyUI的UILight控件做个状态指示灯(附完整代码)

WinForms界面美化实战&#xff1a;用SunnyUI的UILight控件打造专业状态指示灯 在桌面应用开发中&#xff0c;状态指示是用户界面不可或缺的元素。传统的WinForms控件往往显得单调乏味&#xff0c;而SunnyUI的UILight控件为我们提供了一种简单高效的解决方案。这个圆形指示灯控…...

CLIP-GmP-ViT-L-14GPU算力适配:ViT-L模型显存占用分析与推理加速实践

CLIP-GmP-ViT-L-14 GPU算力适配&#xff1a;ViT-L模型显存占用分析与推理加速实践 1. 引言 当你拿到一个像 CLIP-GmP-ViT-L-14 这样强大的视觉-语言模型时&#xff0c;第一反应可能是兴奋——它拥有接近90%的ImageNet准确率&#xff0c;能精准理解图片和文字的关系。但当你尝…...

Phi-4-reasoning-vision-15B部署教程:内网验证+外网网关调试全流程避坑指南

Phi-4-reasoning-vision-15B部署教程&#xff1a;内网验证外网网关调试全流程避坑指南 1. 模型介绍 Phi-4-reasoning-vision-15B是微软推出的多模态视觉推理模型&#xff0c;具备强大的图像理解和分析能力。这个模型特别适合需要处理复杂视觉任务的场景&#xff0c;比如文档O…...

java.net.SocketTimeoutException: Connect timed out

Could not install Gradle distribution from https://services.gradle.org/distributions/gradle-8.13-bin.zip. Reason: java.net.SocketTimeoutException: Connect timed outAndroid Studio 从 Gradle 官方服务器下载 gradle-8.13-bin.zip 时&#xff0c;网络连接超时&#…...

告别云端依赖!DeepSeek-R1-Distill-Qwen-1.5B离线运行全攻略

告别云端依赖&#xff01;DeepSeek-R1-Distill-Qwen-1.5B离线运行全攻略 1. 为什么选择离线运行DeepSeek-R1-Distill-Qwen-1.5B&#xff1f; 在AI应用日益普及的今天&#xff0c;大多数用户仍然依赖云端服务来运行大语言模型。但云端服务存在隐私泄露、网络延迟、使用成本高等…...

千问3.5-2B部署教程:GPU利用率监控脚本(nvidia-smi + prometheus exporter)

千问3.5-2B部署教程&#xff1a;GPU利用率监控脚本&#xff08;nvidia-smi prometheus exporter&#xff09; 1. 引言 在部署和使用千问3.5-2B这类视觉语言模型时&#xff0c;GPU资源的高效利用至关重要。本教程将手把手教你如何搭建一个轻量级的GPU监控系统&#xff0c;实时…...

OpenClaw安全实践:Kimi-VL-A3B-Thinking本地化部署的数据边界保障

OpenClaw安全实践&#xff1a;Kimi-VL-A3B-Thinking本地化部署的数据边界保障 1. 为什么选择本地化部署&#xff1f; 去年夏天&#xff0c;我接手了一个医疗影像分析项目&#xff0c;需要处理大量患者CT扫描图像和诊断报告。最初尝试使用公有云API服务时&#xff0c;每次上传…...

飞书机器人自动化:OpenClaw调用Qwen3-4B实现会议纪要生成

飞书机器人自动化&#xff1a;OpenClaw调用Qwen3-4B实现会议纪要生成 1. 为什么选择OpenClawQwen3-4B做会议纪要 上个月我经历了连续三天的跨部门会议&#xff0c;每天手动整理会议纪要到深夜的痛苦让我开始寻找自动化解决方案。试过几款SaaS工具后&#xff0c;发现要么需要上…...