问题标签 [qpainter]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - PyQT:愚蠢的 QPainter.drawEllipse
我盯着代码看的时间越长,我对它的理解就越少,但它变得越有趣。在一种情况下,QPainter 会绘制圆圈,而在另一种情况下则不会。
我的问题是,如果成功了,QPainter不会绘制。如果,另一方面,它不成功,它确实平局。我真正想要实现的是根据状态改变颜色。这个相当丑陋的代码是为了说明。将 QP.begin() 移到循环之外或最后在 if 子句之外只有一个 drawEllipse() 没有任何区别。
有人能告诉我为什么在一种情况下椭圆实际上是画的,而在另一种情况下却不是?
输出是:
...
尚未 尚未
尚未
尚未 尚未 成功 成功 成功 成功 成功 ...
椭圆之前是否绘制过并不重要。如果我在“尚未”的情况下评论 drawEllipse(),则不会绘制圆圈。
qt - 如何在 QPainter 中使用遮罩?
我有一个从具有透明度的 PNG 加载的形状(蓝色):
然后我在这个形状(红色)的顶部画了几个圆圈QPainter::drawEllipse
。
结果有点类似于第三张图片,红色的形状完全覆盖了蓝色的形状:
但是,我想要蓝色形状充当红色形状的遮罩,结果如下:
QPainter 可以做到这一点吗?
qt - 在 QWidget 上使用 alpha 透明蒙版?
是否可以为 QWidget 分配 alpha 透明掩码?我知道如何设置蒙版,setMask
但它似乎只支持黑白蒙版。是否可以让它支持真正的 Alpha 通道?
即目前我有一个这样的PNG:
和这样的小部件:
如果我在 QPixmap 中加载我的 PNG 并将其设置为蒙版,我会得到这个(注意边缘):
但是我想得到这个(平滑的边缘):
知道怎么做吗?
注意:我在小部件上做一些更复杂的绘图,必须限制在遮罩区域,所以我不能简单地将我的 PNG 设置为小部件的背景图像。
qt - QT,使用硬件加速(gpu)将原始图像转换为jpg
我需要将原始图像缓冲区转换为 jpg 图像缓冲区。
目前,我通过以下方式执行此操作:
它工作正常,但 cpu 负载太高(我有很多线程每秒执行此操作很多时间)。阅读 Qt 文档后,我发现了这篇文章:Hardware Acceleration & Embedded Platforms。如果我理解的话,我可以使用 QPainter 类来执行 gpu 操作......是否可以使用这个类进行这种转换(从 raw 到 jpg)?(或另一个使用硬件加速 (gpu) 的类似 Qt 类)!!
我的应用程序需要独立于平台。
非常感谢。
python - QRect 宽度和高度(以像素为单位)?
在 PyQt4 Gui 中,我需要仔细放置多个 QPainter Pixmap。
在指定新像素图的坐标和高度和宽度时,我要求所有单位都以像素为单位。
(否则,我的 Gui 会在与我自己分辨率不同的屏幕上被毁掉)。
放置 Pixmap 时,我使用 DrawPixmap( QRect , QPixmap ) 函数。
需要放置的像素图位于 4 个整数的元组的 QRect 列表中,它们指定像素图的左上角(以 px 为单位)和像素图的右下角(以 px 为单位)的坐标。
例如:
块 = [QtCore.QRect(x1, y1, x2, y2), etc]。
遗憾的是,元组的最后两个数字在传递给 DrawPixmap(QRect, QPixmap) 时被解释为宽度和高度,单位为 (cm)。
我的问题...
有没有一种方法可以完全以像素为单位指定 Pixmaps 尺寸?
(通过传递像素宽度和高度,或维度框角的两个像素坐标)。
我在 QPainter 或 QRect 类引用中找不到方法。
谢谢!
规格:
Python 2.7
PyQt4
Windows 7 32bit
IDLE
c++ - Qt drawRect 在后台
我想画一个滑块的背景。我试过了,但颜色覆盖了整个滑块。这是在继承的 QSlider 类中
c++ - 使用 QPainter 进行平铺渲染
我正在实现一个平铺渲染系统(以避免GL_MAX_VIEWPORT_DIMS
-limitation)。我需要支持QWidget
-overlays,因此还必须为小部件实现平铺渲染。计划是通过使用正确的转换创建 a 并使用 "transformed"QPainter
调用来做到这一点。QWidget::render
QPainter
我有一些测试代码可以做到这一点:
我希望在每个图块中呈现四分之一的按钮,但结果却大不相同:
上面的瓷砖编号是:
0 2
1 3
如何正确设置 QPainter(或实现我需要的)?
qt - QPainter::rotate 禁用绘制文本的抗锯齿
我曾经QPainter::setRenderHint(QPainter::Antialiasing, true)
告诉 Qt 我希望它对我所做的任何绘图进行抗锯齿处理(在这种情况下,使用 绘制的文本drawText()
)。
这工作正常,文本看起来不错,直到我想旋转我正在绘制的像素图,例如
(将 QPainter 逆时针旋转 90 度并将其重新显示)
调用rotate()
似乎对绘制的任何文本禁用抗锯齿 - 文本以正确的旋转绘制但没有抗锯齿。其他事情似乎不受影响 - 例如drawLine()
仍然画出很好的抗锯齿线。
知道我做错了什么吗?
编辑:毫不奇怪,将文本添加到路径然后填充该路径会给我抗锯齿、旋转的文本。如果可能的话,我宁愿避开这条路线。
编辑(再次):我尝试过使用QFont::setStyleStrategy(QFont::PreferAntialias)
我正在使用的字体,但没有效果。然而,更多的实验表明,像 Arial 这样的基本字体在旋转时仍会产生抗锯齿文本,而我的自定义字体(对于任何感兴趣的人来说,Swiss721 BlkCn BT)不会。此外,虽然这个问题在 Windows 7 上存在,但在 Ubuntu 上运行时我没有同样的问题。这篇 FAQ 文章似乎暗示 Qt 依靠主机操作系统来处理字体抗锯齿,那么 Windows 在处理这种特定字体(它是 TrueType,就像 Arial 一样)的呈现时可能会遇到什么样的问题?
编辑(最后一次,我保证):将字体大小增加到 16pt 或以上可以解决问题。似乎问题在于将我的特定字体渲染到 16pt 以下 - 可能与上述博客文章中提到的内容有关?:
在 Windows 2000 上,字体通常不会在一定范围内(例如 8-16 号)进行抗锯齿处理,以使文本更加清晰易读。
c++ - Qt Beginner:QPainter 小部件不呈现
我对 Qt 没有太多经验,并且在使用QPainter
. 我正在尝试制作一个简单的图形小部件,它接受多个点并创建一个QVector
of QPoints
,然后使用这个向量来绘制一个多边形。但是,我的实现现在没有出现任何内容。我相当确定我已将小部件正确添加到窗口中,因为我可以看到它应该占据的空白空间。这使我相信问题出在图形小部件中。任何帮助表示赞赏。
标题:
来源:
python - 尝试为日期单元格着色的问题
我在尝试使用在 QT Designer 中创建并通过 pyuic 4 转换的日历选择选择后重新着色日期单元格时遇到了一些问题。
到目前为止,我已经看到一些关于重新着色单元格或表格/树小部件行的类似问题 - 但这些示例源于在代码中实例化之前扩展基本 QCalendarWidget 或 Tree 小部件类......而我使用的是 QT Designer 放置日历通过 pyuic 转换并在转换后的 python 脚本中实例化的小部件。
这是我的窗口主文件的示例,我尝试使用 QCalendarWidget 的 paintCell 函数更改日期选择的颜色:
这是 puic 转换的 Qt Designer 脚本:
当我运行它时,我收到以下日志消息,这些消息几乎告诉我出了点问题:
我是您可能认为的初级编码员(..或更少)-我在 Autodesk Maya 中拥有丰富的 Python 经验和一些 QT 知识,并且具有技术艺术背景-但可能没有足够的核心背景OOP 原则。不过非常愿意学习。