Qt 可以做什么?

Qt 虽然经常被当做一个 GUI 库,用来开发图形界面应用程序,但这并不是 Qt 的全部;Qt 除了可以绘制漂亮的界面(包括控件、布局、交互),还包含很多其它功能,比如多线程、访问数据库、图像处理、音频视频处理、网络通信、文件操作等,这些 Qt 都已经内置了。

大部分应用程序都可以使用 Qt 实现,除了与计算机底层结合特别紧密的,例如驱动开发,它直接使用硬件提供的编程接口,而不能使用操作系统自带的函数库。

下面的程序都使用 Qt 开发:WPS、YY语音、Skype、豆瓣电台、虾米音乐、淘宝助理、千牛、暴雪的战网客户端、VirtualBox、Opera、咪咕音乐、Google地图、Adobe Photoshop Album 等。

Linux 也是嵌入式的主力军,广泛应用于消费类电子、工业控制、军工电子、电信/网络/通讯、航空航天、汽车电子、医疗设备、仪器仪表等相关行业。

Qt 虽然也支持手机操作系统,但是由于 Android 本身已经有Java和 Kotlin,iOS 本身已经有 Objective-C 和 Swift,所以 Qt 在移动端的市场份额几乎可以忽略。

总起来说,Qt 主要用于桌面程序开发和嵌入式开发。

Qt可以使用多个QPainter对象同时绘制在同一个QWidget或QPixmap上。可以通过创建多个QPainter对象,并将它们分别用于不同的绘制任务来实现这一点。

例如,以下代码演示了如何在同一个QWidget上使用两个不同的QPainter对象进行绘制:

#include <QtWidgets>
class MyWidget : public QWidget
{
public:MyWidget(QWidget *parent = nullptr) : QWidget(parent){setFixedSize(200, 200);}
protected:void paintEvent(QPaintEvent *event) override{QPainter painter(this);// 使用第一个painter绘制矩形QPainter rectPainter(this);rectPainter.setBrush(Qt::red);rectPainter.drawRect(50, 50, 100, 100);// 使用第二个painter绘制椭圆QPainter ellipsePainter(this);ellipsePainter.setBrush(Qt::blue);ellipsePainter.drawEllipse(25, 25, 150, 150);}
};
int main(int argc, char *argv[])
{QApplication app(argc, argv);MyWidget widget;widget.show();return app.exec();
}

在这个例子中,MyWidget的paintEvent方法被重写以使用两个不同的QPainter对象分别绘制矩形和椭圆。首先创建一个主要的QPainter对象并将其用于初始化QWidget。然后,创建两个额外的QPainter对象,并将它们分别用于绘制矩形和椭圆。最后,所有三个QPainter对象将一起绘制在QWidget上。

请注意,使用多个QPainter对象同时绘制可能会导致性能问题。如果需要高效地绘制大量图形,请考虑使用更高级的绘图技术,如OpenGL或Qt Quick。

本文福利,费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,C++设计模式,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QSS,OpenCV,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击莬费领取↓↓

Qt多个painter同时绘制相关推荐

  1. Qt中的基础图形绘制

    文章目录 1 Qt中的基础图形绘制 2 Qt基础图形绘制中的视口和窗口 3 综合实例开发:简易绘图程序 3.1 需求分析 3.2 设计分析 1 Qt中的基础图形绘制 Qt图形系统中的关键角色: QPa ...

  2. 【Qt】2D绘图之绘制图像(二)

    00. 目录 文章目录 00. 目录 01. 概述 02. 开发环境 03. 绘制QImage图像 04. 绘制QPixmap图像 05. 绘制QPicture图像 06. 综合对比 07. 附录 0 ...

  3. 【Qt】2D绘图之绘制图片

    00. 目录 文章目录 00. 目录 01. 概述 02. 开发环境 03. 简单绘制图片 04. 平移图片 05. 缩放图片 06. 旋转图片 07. 扭曲图片 08. 附录 01. 概述 Qt提供 ...

  4. 【Qt】2D绘图之绘制路径

    00. 目录 文章目录 00. 目录 01. 概述 02. 开发环境 03. 绘制简单路径 04. 复制图形路径 05. 位置问题探讨 06. 附录 01. 概述 如果要绘制一个复杂的图形,尤其是要重 ...

  5. 【Qt】2D绘图之绘制文字

    00. 目录 文章目录 00. 目录 01. 概述 02. 开发环境 03. 基本绘制 04. 使用范围绘制文字 05. 使用字体绘制文字 06. 附录 01. 概述 Qt中除了绘制图形以外,还可以使 ...

  6. 【Qt】2D绘图之绘制简单的图形

    00. 目录 文章目录 00. 目录 01. 概述 02. 开发环境 03. 绘制图形 04. 画笔和画刷 05. 绘制弧线 06. 附录 01. 概述 Qt中提供了强大的2D绘图系统,可以使用同一A ...

  7. QT实现在图表顶部绘制一个附加元素(标注)

    QT实现在图表顶部绘制一个附加元素 项目简介 项目技术 项目展示 主要源码片段解析 获取完整项目源码传送门 项目简介 在图表顶部绘制一个附加元素(标注). 项目技术 qt5.12,qtchart模块, ...

  8. Qt 2D绘图(5):绘制图像基础

    Qt 2D绘图(5):绘制图像基础 本文为原创文章,转载请注明出处,或注明转载自"黄邦勇帅(原名:黄勇) 本文出自本人原创著作<Qt5.10 GUI完全参考手册>网盘地址: ht ...

  9. Qt如何实现实时鼠标绘制图形

    展示效果 功能实现 想要实现鼠标拖拽绘图的效果,离不开鼠标的三大事件:按下.移动.释放 那么具体实现实时绘制矩形框的核心流程是什么呢? 第一步:鼠标左键点击,记录初始点击位置 第二步:在窗口中移动鼠标 ...

最新文章

  1. 二:serverless网站数据库操作
  2. iOS base64 MD5
  3. 又一个可以弄垮iPhone手机的漏洞...
  4. Leetcode 147. 对链表进行插入排序 解题思路及C++实现
  5. spring源码研究
  6. Redis数据恢复--误删数据后一次吓尿的经历
  7. STM32F407之资源
  8. UE3 贴图支持及设置
  9. 英魂之刃服务器维护中修改,英魂之刃gg修改教程 | 手游网游页游攻略大全
  10. synchronized的使用(一)
  11. 【luogu P1156 垃圾陷阱】 题解
  12. 魔百盒之创维E900V22C、E900V22D卡刷精简固件-S905L3A
  13. 基于ansys命令流的水池静力学分析
  14. CESM mpirun noticed that process rank 1 with PID 0 on node ubuntu exited on signal 11
  15. QCC3040---AppDevice module
  16. 一个月薪 12000 的北京程序员的真实生活 !
  17. 『常识』印刷纸张尺寸对比表
  18. Android学习之——APP番茄工作法——小结(1)
  19. 现代战争的制胜法宝?-黑科技原子无线电技术应用前景及最新研究进展
  20. 响应式编程之网络新约:RSocket

热门文章

  1. 地震勘探基础(一)之地震波
  2. HDU  4343 Interval query
  3. 魂武者怎么在电脑上玩 魂武者电脑版使用教程
  4. Java Spring Boot 3.0.0 RC1 震撼登场!
  5. 小程序·云开发为回馈新老用户特推福利活动
  6. 中年IT男的转型经历
  7. 双非本科计算机考研985很难吗,本科双非报考985、211受歧视?
  8. 重庆自考本科可以选择全日制吗?
  9. 从360随身WiFi到随身WiFi的改革发展史
  10. 蓝牙5.0射频芯片NRF5283/NRF52832/NRF52840规格书