问题标签 [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.
qt - 如何使用 QPainter::drawPolyLine 绘制圆角
我目前正在尝试使用 QGroupBox 作为基础创建一个自定义容器小部件并在绘制事件中绘制新框架,使用 drawPolyLine 创建它一切正常,但我想用圆角绘制框架角落。有没有人遇到过使用 drawPolyLine 的方法,或者我需要重写我的代码来实现它们吗?
c++ - QPainter 不会改变颜色
我在学习Qt
。我没有意识到Qt 教程第 11 章的练习,其中指出“在空中射击时更改大炮的颜色”。我选择在paintCannon 函数中实现更改(如下)。我下面的代码有什么问题?
由于我首先怀疑Qpainter
'ssave
并且restore
可能做错了什么,所以我将它们注释掉,最终没有重新绘制。
谢谢。
qt - 移动 QGraphicsItem 的“图形”
我有一个带有自定义图形的 QGraphicsItem,如下图的上半部分所示,其中红色圆圈是shape()
该项目的:
有没有办法保留图形,但只是像下半部分所示的那样移动它?
qt - 在 QWidget 上画一条线
我正在尝试创建一个由一条水平黑线组成的小部件。这个小部件将被放置在 QGridLayout 中,这样它就占据了整行,从而充当分隔符。由于调整了安装布局的小部件的大小,我希望这条线改变它的大小以跟上。我检查了许多选项,包括 QLine、QGraphicsView 和 QImage,但我似乎无法画线,更不用说调整大小了。
我在它自己的类中实现它,所以我可以在需要时重用它。谁能帮我解决这个问题?
在这种情况下,是安装前面提到parent
的父级。QWidget
QGridLayout
linux - Paintevent Consuming Huge amount of CPU in Qt
I have a problem with Paintevent in Qt. Paintevent thread is utilizing almost all amount of CPU when started.
Code in constructor of my main widget.
And in my paintevent,
Nothing at all in Paintevent!!!But running this piece of code consumes 100% of CPU [CPU is Single core 1 Ghz Processor
].
And when I stop(pRedraw_Timer->stop()
) this pRedraw_Timer which calls update, for ex: On a button click the usage comes down to 1% or under 10% almost instantly!!!!
My requirement is plotting a graph depending upon input from serial port. So i need to constantly update the view using update. But while plotting, any interrupt(high priority) seems to disturb the plotting, as cpu switches for handling the interrupt. After handling interrupt, plotting comes back to normal. My question is how and why is this paintevent thread consuming 100% CPU even if its not doing anything at all. How can I change this Scenario?
EDIT(for kuba ober): Well there are several other functions and slots. But nothing is invoked unless I call it or Trigger a Signal. I am not doing anything at all. Just after running the program, it consumes all cpu. Remember only constructor of main dialog is called.
c++ - QPainterPaths 的高效离屏渲染(需要 OpenGL 和非 OpenGL 解决方案)
- 在我的应用程序中,我
QPainter
使用widget
- 由
QPainterPaths
包含要绘制的预先计算的路径制成 - 当前
widget
是 aQWidget
,而不是 aQGLWidget
,但这可能会改变。
- 由
- 我正在尝试将绘画移出屏幕并将其拆分为分块作业
- 我想将每个块绘制到 a 上
QImage
,最后将所有图像绘制到widget
QPainterPaths
已经分块,所以这不是问题- 问题是,绘图
QImages
比绘图慢 5 倍QWidget
- 我想将每个块绘制到 a 上
- 我做过的一些基准测试
- 时间值是多次运行的四舍五入平均值
- 测试块包含 100 个
QPainterPaths
,每个块有大约 150 个线性线段 QPainter::Antialiasing
使用渲染提示绘制大约 15k 条路径,QPen
使用圆帽和圆连接
- 请记住,我的来源是
QPainterPaths
(和线宽+颜色;一些绘制,一些填充)- 我不需要所有其他类型的绘图
QPainter
支持 - 可以
QPainterPaths
转换为可以在 a 上绘制的其他东西OpenGL buffer
,这将是一个很好的解决方案。 - 我不熟悉
OpenGL
离屏渲染,我知道有不同类型的 OpenGL 缓冲区,其中大多数不是用于 2D 图像渲染,而是用于顶点数据。
- 我不需要所有其他类型的绘图
(*) These 2 lines have been added afterwards and are solutions to the problem!
如果您也可以告诉我一个非基于 OpenGL 的解决方案,那就太好了,因为我想在两个版本中编译我的应用程序:OpenGL
和non-OpenGL
version.
另外,我希望解决方案能够在非 GUI 线程中呈现。
有没有一种有效地在屏幕外绘制块的好方法?
是否有QGLWidget
(OpenGL
屏幕外缓冲区)的屏幕外计数器部分可以用作绘画设备QPainter
?
c++ - QPainter 初始化画家并使用它
我创建了一个名为 Painter 的类,并QPainter
在构造函数中创建了 pQMainWindow
作为参数传递。
所以在 mainwindow.hi 中添加了:
在 mainwindow.cpp 我添加
和
画家.h
和画家.cpp
它没有画出任何东西。
如果我做
它渲染线并在 2-3 秒后关闭
让它发挥作用的唯一方法就是做
但是在每一帧上初始化 p 似乎很愚蠢,它就是这样工作的。有一种方法可以只初始化一次屏幕或让开始工作?
谢谢。
qt - 在 qt 中使用 QPainter::drawPixmap 绘制像素图
我可以使用 QPainter::drawPixmap 绘制像素图,但我在调整大小时遇到了问题。像素图被绘制到许多不同的场景上。有的场景很大,有的场景很小。这会导致绘制的像素图看起来非常大或非常小,具体取决于场景(或视口,无论其名称如何)的大小。我需要像素图每次看起来都一样大小,无论它被放置到的场景的尺寸如何。
基本上,我希望它的工作方式类似于 drawPoint,您可以在其中指定点的长度和宽度(以像素为单位),因此该点每次看起来都具有相同的大小。
以下代码行在我子类化的 QGraphicsItem 的绘制函数中:
使用 pos() 返回 QPointF 我需要在其上绘制像素图。
qt - Qt 4.7 - 使用paintEvent绘制带有动态反馈的2点线
所以我试图在两点之间画一条线。鼠标左键单击开始线条,然后我希望在鼠标移动时动态绘制线条(几乎就像线条的预览)。再次单击鼠标左键,线条将被永久绘制。我知道还有很多其他关于 QPaintEvents 的帖子,并且我结合了一些使用的技术,但由于某种原因,没有任何东西被绘制到画布上。下面是代码:
任何帮助表示赞赏!谢谢!乔什
qt - 为什么我想在 Qt 小部件上绘制的“矩形”没有出现?
我基本上想在对话框窗口小部件上显示一个矩形。使用另一个问题作为参考,我尝试调整使用 QLabel 并对其进行绘画的框架(整个过程似乎过于复杂)。
我首先在对话框的类中创建一个成员:
在对话框的构造函数中:
只是为了让它工作,我给对话框一个按钮,让用标签创建的“矩形”出现在小部件上。我将此按钮的“按下”信号连接到执行以下操作的插槽:
不幸的是,当我按下按钮时,小部件中什么也没有出现。我在这里想念什么?