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

【Qt绘图】之绘制坦克

使用绘图事件,绘制坦克。

效果

效果很逼真,想象力,有没有。
在这里插入图片描述

示例

代码像诗一样优雅,有没有。

  • 包含头文件
#include <QApplication>
#include <QWidget>
#include <QPainter>
  • 绘制坦克类
class TankWidget : public QWidget
{
public:TankWidget(QWidget *parent = 0): QWidget(parent){setFixedSize(400, 300);}protected:void paintEvent(QPaintEvent *){QPainter painter(this);painter.setRenderHint(QPainter::Antialiasing, true);int nOffset = 0;for(int i = 0; i < 4; ++i){// 绘制坦克炮筒painter.setPen(Qt::black);painter.setBrush(Qt::gray);painter.drawRect(90+nOffset, 100, 20, 60);// 绘制坦克车身painter.setBrush(Qt::darkGreen);painter.drawRect(30+nOffset, 140, 60, 20);painter.drawRect(40+nOffset, 120, 40, 20);// 绘制坦克底盘painter.setPen(Qt::black);painter.setBrush(Qt::green);painter.drawRect(10+nOffset, 160, 100, 40);// 绘制坦克履带painter.setPen(Qt::black);painter.setBrush(Qt::darkGray);// 履带painter.drawEllipse(12+nOffset, 190, 20, 20);painter.drawEllipse(37+nOffset, 190, 20, 20);painter.drawEllipse(62+nOffset, 190, 20, 20);painter.drawEllipse(87+nOffset, 190, 20, 20);nOffset += 150;}}
};
  • 调用
int main(int argc, char *argv[])
{QApplication app(argc, argv);TankWidget widget;widget.show();return app.exec();
}

分析

  • 首先,通过绘制矩形、椭圆等基本图形进行坦克的绘制。其中,通过设置画刷的颜色和绘制顺序等绘制技巧,实现了具有逼真感的坦克效果。
  • 需要注意的是,在Qt中,可以通过重载QWidgetpaintEvent函数,来实现对控件的绘制操作。在paintEvent函数中,可以使用QPainter对象进行各种基本图形的绘制,并设置画笔、画刷等属性,以达到所需的效果。
  • 除此之外,还可以使用QPixmapQImage等对象,将一幅静态的坦克图像加载到窗口中,来实现更加逼真的坦克效果。

相关文章:

【Qt绘图】之绘制坦克

使用绘图事件&#xff0c;绘制坦克。 效果 效果很逼真&#xff0c;想象力&#xff0c;有没有。 示例 代码像诗一样优雅&#xff0c;有没有。 包含头文件 #include <QApplication> #include <QWidget> #include <QPainter>绘制坦克类 class TankWidge…...

【机器视觉技术栈】- 机器视觉基础

1.1 为什么采用机器视觉 人眼与机器视觉对比 人眼机器视觉精确性差&#xff0c;64灰度级&#xff0c;不能分辨小于100微米的目标强&#xff0c;256灰度级&#xff0c;可检测微米级目标速度慢&#xff0c;无法看清间隔小于40毫秒的运动目标快&#xff0c;快门时间可达10微秒适…...

Arkts开发UIAbility组件生命周期启动模式开发详解【鸿蒙专栏-19】

文章目录 HarmonyOS UIAbility组件详解UIAbility组件概述声明配置UIAbility组件生命周期Create状态WindowStageCreate和WindowStageDestroy状态Foreground和Background状态Destroy状态UIAbility组件启动模式Singleton启动模式Standard启动模式Specified启动模式HarmonyOS UIAbi…...

力扣295. 数据流的中位数(java,堆解法)

Problem: 295. 数据流的中位数 文章目录 题目描述思路解题方法复杂度Code 题目描述 思路 由于该题目的数据是动态的我们可以维护两个堆来解决该问题 1.维护一个大顶堆&#xff0c;一个小顶堆 2.每个堆中元素个数接近n/2&#xff1b;如果n是偶数&#xff0c;两个堆中的数据个数…...

open3d-点云及其操作

open3d提供了一个专门用于点云的数据结构 PointCloud。 class PointCloud(Geometry3D):color # 颜色normals # 法向量points # 点云def __init__(self, *args, **kwargs):"""__init__(*args, **kwargs)Overloaded function.1. __init__(self: open3d.cpu.py…...

无人机助力电力设备螺母缺销智能检测识别,python基于YOLOv7开发构建电力设备螺母缺销高分辨率图像小目标检测系统

传统作业场景下电力设备的运维和维护都是人工来完成的&#xff0c;随着现代技术科技手段的不断发展&#xff0c;基于无人机航拍飞行的自动智能化电力设备问题检测成为了一种可行的手段&#xff0c;本文的核心内容就是基于YOLOv7来开发构建电力设备螺母缺销检测识别系统&#xf…...

如何使用Python的Open3D开源库进行三维数据处理

简介 在本文中&#xff0c;我提供了一个关于如何使用Python的Open3D库&#xff08;一个用于3D数据处理的开源库&#xff09;来探索、处理和可视化3D模型的快速演练。 使用Open3D可视化的3D模型&#xff08;链接https://sketchfab.com/3d-models/tesla-model-s-plaid-9de8855fa…...

HarmonyOS应用开发者基础认证试题

判断题 1.Ability是系统调度应用的最小单元&#xff0c;是能够完成一个独立功能的组件。一个应用可以包含一个或多个Ability。(true) 2.Tabs组件仅可包含子组件TabsContent&#xff0c;每一个页签对应一个内容视图即TabContet组件。(true) 3.使用http模块发起网络请求时&#…...

Android Camera2开启电子防抖(EIS)和光学防抖(OIS)

刚好当前项目有录像功能&#xff0c;使用了第三方框架是基于Camera2引擎开发&#xff0c;当使用 Camera2 API 开发相机应用时&#xff0c;启用和关闭 EIS&#xff08;电子防抖&#xff09;是一个重要的功能。EIS 可以帮助减少相机拍摄时的抖动&#xff0c;从而提高图像和视频的…...

劲爆:Sam Altman 回归CEO专访确认Q*的存在

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…...

Electronica慕尼黑电子展 Samtec团队与21ic分享虎家产品与方案

【摘要/前言】 “希望但凡是能够使用到连接器的场合都有Samtec的身影” 在慕尼黑上海电子展现场&#xff0c;Samtec华东区销售经理章桢彦先生在与21ic副主编刘岩轩老师的采访中&#xff0c;如是说道。这是一种愿景&#xff0c;更是Samtec的努力方向。短短一句话&#xff0c;…...

Vue基本使用(一)

&#x1f4d1;前言 本文主要是【Vue】——Vue基本使用的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是听风与他&#x1f947; ☁️博客首页&#xff1a;CSDN主页听风与他 &#x1f304;每日一句&#x…...

Android:BackStackRecord

BackStackRecord:fragment回退栈,继承自FragmentTransaction,并且实现了OpGenerator接口,OpGenerator接口用来添加或弹出事务的,后面会提到。 从《Android:从源码看FragmentManager如何工作》文章知道,每次beginTransaction会创建一个BackStackRecord对象,改对象持有f…...

微信小程序 slider 翻转最大和最小值

微信小程序 slider 翻转最大和最小值 场景代码示例index.wxmlindex.jsutil.js 参考资料 场景 我想使用 slider 时最左边是 10 最右是 -10。 但是想当然的直接改成<slider min"10" max"-10" step"1" /> 并没用。 查了文档和社区也没有现成…...

APITable免费开源的多维表格与可视化数据库本地部署公网远程访问

APITable免费开源的多维表格与可视化数据库公网远程访问 文章目录 APITable免费开源的多维表格与可视化数据库公网远程访问前言1. 部署APITable2. cpolar的安装和注册3. 配置APITable公网访问地址4. 固定APITable公网地址 前言 vika维格表作为新一代数据生产力平台&#xff0c…...

配电房综合监控系统

配电房综合监控系统是一种集成了实时监控、数据采集、远程控制等多功能的系统&#xff0c;用于对配电房进行全方位的监测和管理。 力安科技配电室综合监控系统依托电易云-智慧电力物联网&#xff0c;实现配电室环境监测、有害气体监测、安防监控、采暖通风、门禁、灯光、风机、…...

【JavaSE】集合(学习笔记)

一、数据结构 1、栈 压栈 / 弹栈栈顶元素、栈底元素先进后出 2、队列 入队列 / 出队列前端、后端先进先出 3、数组 查询效率高&#xff0c;增删效率低 4、链表 查询效率低(必须从头找)&#xff0c;增删效率高 5、哈希表 比较方法哈希值equals结构&#xff1a;数组 链…...

Mybatis 的简单运用介绍

Mybatis 用于操作数据库 操作数据库肯定需要: 1.SQL语句 2.数据库对象和 java 对象的映射 接下来我们看看怎么使用 Mybatis 我们先搞一些数据库内容 然后将其这些内容和Java对象进行映射 再创建一个类实现 select * from 再写一个类证明上述代码是否可以实现 别忘了在appli…...

python的itertools库

itertools常用的方法如下&#xff1a; import itertools 1. 生成的列表累加&#xff0c;在生成新的列表x itertools.accumulate(range(10))print(list(x))结果&#xff1a;[0, 1, 3, 6, 10, 15, 21, 28, 36, 45] 2. 连接多个列表或者迭代器x itertools.chain(range(3), rang…...

STM32/GD32_分散加载

Q&#xff1a;如何将一个变量、某个源文件的函数在编译阶段就存储在用户指定的区域&#xff1f; KEIL环境&#xff1a;.map后缀文件、.sct后缀文件 IAR环境&#xff1a;.map后缀文件、.icf后缀文件 【map文件】 对固件里面的变量、函数、常量等元素的存储空间进行分配的说明…...

001、性能优化基础:慢SQL诊断与执行计划分析

昨天凌晨又被告警短信吵醒了&#xff0c;线上某核心接口的P99响应时间飙到了3秒。登录服务器一看&#xff0c;MySQL的CPU已经跑满&#xff0c;processlist里堆了二十几个相同的查询——又是慢SQL惹的祸。这种场景咱们做后端开发的太熟悉了&#xff0c;今天就来聊聊怎么系统性地…...

RyTuneX深度实战:Windows系统性能调优与隐私保护最佳实践

RyTuneX深度实战&#xff1a;Windows系统性能调优与隐私保护最佳实践 【免费下载链接】RyTuneX RyTuneX is a cutting-edge optimizer built with the WinUI 3 framework, designed to amplify the performance of Windows devices. Crafted for both Windows 10 and 11. 项目…...

SAP MM进阶:解密DESADV IDoc如何打通公司间STO的‘任督二脉’

SAP MM进阶&#xff1a;DESADV IDoc在公司间STO流程中的核心作用解析 在集团化企业的供应链管理中&#xff0c;公司间库存转储订单&#xff08;STO&#xff09;的高效执行往往决定着整个供应链的响应速度。当货物从发货方仓库运出时&#xff0c;如何确保收货方能实时获取发货信…...

如何快速掌握mruby生态系统:第三方库、工具和资源的完整指南

如何快速掌握mruby生态系统&#xff1a;第三方库、工具和资源的完整指南 【免费下载链接】mruby Lightweight Ruby 项目地址: https://gitcode.com/gh_mirrors/mr/mruby mruby是一个轻量级的Ruby实现&#xff0c;专为嵌入式系统和资源受限环境设计。这个强大的轻量级Rub…...

Realistic Vision V5.1 惊艳作品集:基于卷积神经网络的人像摄影风格迁移

Realistic Vision V5.1 惊艳作品集&#xff1a;基于卷积神经网络的人像摄影风格迁移 你有没有想过&#xff0c;自己随手拍的一张普通自拍照&#xff0c;也能变成一张充满电影感、艺术气息的专业级人像作品&#xff1f;这听起来像是专业摄影师和后期修图师的专属魔法&#xff0…...

从火星车到智能家电:聊聊那些藏在身边的RTOS(FreeRTOS、VxWorks、RT-Thread)

从火星车到智能家电&#xff1a;聊聊那些藏在身边的RTOS 当你清晨按下智能咖啡机的启动键&#xff0c;或是用手机远程调节空调温度时&#xff0c;可能不会想到这些设备内部运行着与NASA火星车同源的实时操作系统&#xff08;RTOS&#xff09;。这类专为即时响应设计的系统&…...

014、硬件加速篇:利用GPU、NPU及专用芯片优化RAG推理与检索

014、硬件加速篇&#xff1a;利用GPU、NPU及专用芯片优化RAG推理与检索从一次深夜调试说起 有次凌晨两点&#xff0c;我盯着监控面板上那条刺眼的99%分位延迟曲线——我们的RAG系统在晚高峰时响应时间飙到了3秒以上。拆开看&#xff0c;检索阶段倒还稳定&#xff0c;问题出在重…...

突破Windows与Android壁垒:APK-Installer重构跨平台应用安装体验

突破Windows与Android壁垒&#xff1a;APK-Installer重构跨平台应用安装体验 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 在数字化生活中&#xff0c;两个场景常常困…...

Ubuntu20.04下QGroundControl开发环境搭建全攻略(含常见错误解决方案)

Ubuntu 20.04下QGroundControl开发环境搭建全攻略&#xff08;含常见错误解决方案&#xff09; 在无人机和机器人开发领域&#xff0c;QGroundControl作为一款开源的飞行控制地面站软件&#xff0c;已经成为开发者不可或缺的工具。本文将带你从零开始&#xff0c;在Ubuntu 20.0…...

别再用if-else了!用状态机重构你的51单片机红外循迹小车代码(思路+代码对比)

用状态机重构51单片机红外循迹小车&#xff1a;告别if-else的工程化实践 当你的红外循迹小车代码开始变得像意大利面条一样混乱时&#xff0c;是时候考虑一种更优雅的解决方案了。想象一下&#xff0c;每次需要新增一个传感器或者修改转向逻辑时&#xff0c;都要在几十个if-els…...