首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Qt:绘制高DPI QPixmaps

要在Qt中绘制高DPI的QPixmaps,你可以使用QPixmapsetDevicePixelRatio方法来设置设备像素比。这将确保绘制的像素与屏幕的物理像素匹配,从而实现高DPI的效果。

以下是一个示例代码,演示如何绘制高DPI的QPixmaps:

代码语言:javascript
复制
// 创建一个高DPI的QPixmap
QPixmap pixmap(100, 100);
pixmap.setDevicePixelRatio(devicePixelRatio());

// 创建一个QPainter来绘制
QPainter painter(&pixmap);
painter.setRenderHint(QPainter::Antialiasing);

// 在QPixmap上绘制图形
painter.fillRect(pixmap.rect(), Qt::white);
painter.setPen(Qt::black);
painter.drawEllipse(pixmap.rect().center(), 40, 40);

// 将高DPI的QPixmaps绘制到QWidget上
QPainter widgetPainter(this);
widgetPainter.drawPixmap(0, 0, pixmap);

在上面的示例中,我们首先创建了一个QPixmap对象,并使用setDevicePixelRatio方法设置设备像素比。然后,我们创建了一个QPainter对象,并使用setRenderHint方法设置抗锯齿渲染。接下来,我们在QPixmap上使用QPainter绘制了一个椭圆。最后,我们使用另一个QPainter对象将高DPI的QPixmaps绘制到QWidget上。

请注意,devicePixelRatio方法返回当前屏幕的设备像素比。这样,绘制的像素将与屏幕的物理像素匹配,从而实现高DPI的效果。

确保在绘制高DPI的QPixmaps时,你的应用程序已经启用了高DPI支持。你可以在应用程序的构造函数中使用QApplication::setAttribute(Qt::AA_EnableHighDpiScaling)来启用高DPI支持。

这样,你就可以在Qt中绘制高DPI的QPixmaps,并在高分辨率屏幕上获得更清晰和更精细的图像。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

QTQT基本图形绘制

基本图形绘制 QPainter绘制基本图形 **注意:**QPainter画弧度所使用的角度值,是以1/16°为单位的,在画弧度的时候1°用16表示。...---- QPainterPath绘制简单图形 QPainterPath为QPainter类提供一个存储容器,里面包含了所要绘制的内容的集合及绘制顺序,如长方形、多边形、曲线等各种任意图形。...当需要绘制此预先存储在QPainterPath对象中的内容时,只需调用QPainter类的DrawPath()即可,如addRect()加入一个方形,addEllipse加入一个椭圆形,addText(...---- 画笔笔刷风格 画笔风格——Qt::PenStyle 笔帽风格——Qt::PenCapStyle Qt::SquareCap 方形线端,不覆盖线的端点 Qt::FlatCap 方形线端,覆盖线的端点...); painter.setPen(m_pen); painter.setBrush(m_brush); QRect rect(50,100,300,200);//起始位置,宽

89930

Qt源码笔记】深谈 Qt 绘制

之前写了一篇 浅谈Qt控件绘制 。之所以叫浅谈是因为调用都是比较表层的调用。其实 Qt绘制,可以说用 Qt 的人都有用到,但是对于绘制底层,了解的人并不见得很多。...而 QPaintEngine 根据所要绘制的内容,来区分绘制逻辑,比方说涂色采用填充 buffer 、统一刷新的方式;字体绘制要调用字体图元相关绘制逻辑等等。...所有的表层绘制都要经过绘制引擎来向下传递绘制信息。这是 Qt 作为一个高级框架的闪光点,在其他的 Qt 模块也有类似发现,比如控件的绘制上。...我也说 Windows 平台下默认的 Qt 绘制是使用指令集的。...后记 对于 Qt 绘制的深入探究,可以说是受益匪浅,这篇文章只是描述了冰山一角,其实整个流程比这个简要概括要高级的多。从研究 Qt 源码至今,对整个 Qt 项目的感受与评价,已和往日截然不同。

1.9K50

Qt并发

每个Qt应用程序都有一个QThreadPool::globalInstance()函数,它带有一个推荐的最大线程数,在大多数系统上,处理核的数量就是该值的默认值。...线程指南 一般情况下,要尽可能避免使用多线程,而是用Qt事件循环与QTimer、非阻塞I/O操作、信号以及短持续时间槽相结合的方法来代替。...Qt禁止跨线程的父——子关系。 1)QObject::thread()可返回它的所有者线程,或者是其关联线程。...在次线程中使用Qt的类 当函数可以同时被不同的线程安全地调用时,就称其为”线程安全的“(thread-safe)。...一个类是否是可重入的,在Qt的参考文档中有标记。通常情况下,任何没有被全局引用或者被其他共享数据引用的C++类都认为是可重入的。

1.4K20

Qt源码笔记】浅谈 Qt 中的控件绘制

在工作中经常要根据 UI 提供的稿子做自绘控件,而且在新项目中,我自己基于 Qt 做了一套项目自用控件库,还会涉及到换肤,所以对 Qt 的控件绘制,着重的研究了一下。...Qt 本身的控件绘制,就可以给我们很大的启示。...绘制 Qt 考虑到对于按钮样式,开发者有着自己的需求,而对于逻辑状态可能开发者可以用现成的。...Qt绘制精髓就在于此。对于绘制Qt 控件是交给 style 来管理的。打开源码路径 qtbase\src\widgets\styles 这里边保存了 Qt 绘制的基本样式。...这就是整个 Qt 绘制的大本营了。而对于 Qt 控件的实际绘制逻辑,其实也对做自绘控件库也十分有帮助,不过既然是浅谈,也就不再罗嗦。

2.1K40

Qt 5.14版本更新细节

更新了High-DPI支持: 应用程序现在可以选择使用非整数比例因子,例如Windows的150%。...添加了QT_ENABLE_HIGHDPI_SCALING环境变量,该变量可基于显示DPI进行dpi缩放。...现在,跨平台支持QT_FONT_DPI环境变量,以便使用特定的DPI值进行开发和测试。 图像的色彩空间支持。读取和写入JPEG,PNG,WebP和TIFF图像中的色彩空间,并对图像执行色彩空间转换。...添加了PathPolyline和PathMultiline作为使用Qt Quick Shape绘制和/或填充任意多边形和多边形集的附加方式。...弃用的模块   以下模块是Qt 5.14发行版的一部分,但已弃用,并考虑在后续的Qt发行版中删除: Qt Script Qt Quick Controls 1 Qt XmlPatterns 关于更多

3.1K10

Windows 下的 DPI 应用开发(UWP WPF Windows Forms Win32)

混合 DPI 感知级别 当项目足够大的时候,一个或几个项目成员可能很难了解所有的窗口逻辑。让一个进程的所有窗口开启 DPI 缩放对应用的 DPI 迁移来说比较困难。...相关 API 变化的故事 感谢 Mouri_Naruto(毛利)提供的故事,API 的具体使用也可参考他的文章:【原创】实现每显示器DPI识别(Per-Monitor DPI Aware)的注意事项...并且更早的,V2 带来的非客户区缩放和子窗口 DPI 变更消息的 API 在 1507 和 1511(分别是 Windows 10 的第一和第二个正式版本)就已经有了,不过是未公开的(可参阅 【原创】实现每显示器...只是 Windows Vista 提供了对不明确表示 DPI 支持的应用的暴力缩放(通过 Desktop Window Manager 合成实现),毕竟那个时代除了手机之外,基本没有什么屏幕涉及到 DPI...,如果你做到了 System Aware 的要求位图是不会模糊的(Vista 引入 DWM 虚拟化强制拉伸,主要是当时的引用没有做相关支持,在 DPI 情况下会控件会变得非常小且布局大概率会乱掉)。

66050

C++ Qt开发:Charts绘制各类图表详解

Qt中柱状图的绘制离不开三个类的支持,其分别是QBarSet、QBarSeries、QBarCategoryAxis这三个类提供了用于操作和管理条形图数据集的方法。...QPieSeries 是 Qt Charts 模块中用于绘制饼状图的数据序列类。它派生自 QAbstractSeries 类,用于管理和展示饼状图中的数据。...QPercentBarSeries 是 Qt Charts 模块中用于绘制百分比柱状图的类。...QSplineSeries 是 Qt Charts 模块中用于绘制光滑曲线的类。它表示图表中的一条曲线,通过一系列的数据点来定义曲线的形状。...QSplineSeries 主要用于绘制光滑曲线,通过添加一系列的数据点,可以在图表中呈现出相应的曲线形状。QScatterSeries 是 Qt Charts 模块中用于绘制散点图的类。

52100

C++ Qt开发:Charts绘制各类图表详解

Qt中柱状图的绘制离不开三个类的支持,其分别是QBarSet、QBarSeries、QBarCategoryAxis这三个类提供了用于操作和管理条形图数据集的方法。...QPieSeries 是 Qt Charts 模块中用于绘制饼状图的数据序列类。它派生自 QAbstractSeries 类,用于管理和展示饼状图中的数据。...QPercentBarSeries 是 Qt Charts 模块中用于绘制百分比柱状图的类。...QSplineSeries 是 Qt Charts 模块中用于绘制光滑曲线的类。它表示图表中的一条曲线,通过一系列的数据点来定义曲线的形状。...QSplineSeries 主要用于绘制光滑曲线,通过添加一系列的数据点,可以在图表中呈现出相应的曲线形状。 QScatterSeries 是 Qt Charts 模块中用于绘制散点图的类。

41310
领券