问题标签 [paintevent]

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.

0 投票
2 回答
1720 浏览

c++ - 如何在 Qt 中向小部件添加一个圆圈而不不必要地重新绘制所有内容?

我正在学习 QPainter,并且我创建了一个简单的小部件,每次用户单击小部件时,都会出现一个新圆圈。

在此处输入图像描述

但是Qt不允许在paintEvent之外进行绘制,所以每次我想画一个新的圆圈时,我都需要使widget区域失效,并重新绘制之前的所有圆圈。这似乎不是很有效 - 如果有数百甚至数千个元素怎么办。

最好不要删除以前的圆圈,我只是在小部件顶部绘制新的圆圈。但是在 Qt 上,如果不先使之前的内容无效(并因此删除),我就无法绘制。

在 Qt 中处理这种情况的推荐方法是什么?

0 投票
1 回答
773 浏览

qt4 - 如何阻止背景在 QpaintEvent 中重复

我有一个paintEvent,每次我画一些东西时我都会添加背景,问题是我需要图像停止重复。

例如,如果我的背景图像是 20 像素 x 20 像素,而我的绘画区域是 40 像素 x 40 像素,那么背景是 4 个图像,我只需要一个。

这是我的代码。

谢谢您的帮助!

0 投票
0 回答
641 浏览

qt - 在 Qt ImageViewer 上绘图示例

我是 Qt 的新手,并开始基于 qt 提供的示例项目之一开发应用程序:“图像查看器”。

这是示例项目本身:http ://doc.qt.io/qt-4.8/qt-widgets-imageviewer-example.html

为了确保我没有做错任何事情来扩展项目的功能,我创建了一个新项目并简单地从示例项目中复制了文件(请参阅“图像查看器示例”页面顶部的“文件”部分)

然后,我编辑了imageviewer.h文件:

添加

到 ImageViewer 类。

然后我在imageviewe.cpp中定义了paintEvent

我预计会在左上角画一条线,但事实并非如此。

在我看来,关键是scrollArea与线重叠,使其“不可见”。所以,我注释掉了这一行

ImageViewer::ImageViewer()定义中。

当然,这条线出现了,但没有显示图像。

然后我尝试在scrollArea本身上绘图,更改paintEvent代码:

这导致了类似的消息

QPainter::begin: 绘制设备返回引擎 == 0,类型:1

尝试用谷歌搜索它,但解决方案与scrollArea重叠线无关(或者只是不起作用)。

将不胜感激任何帮助。

0 投票
1 回答
1758 浏览

c++ - 在 qt c++ 中使用paintevent的循环中休眠

基本上我想做的是为列表中的每个数字绘制矩形。数字越大,矩形越大。我的问题是当我真正想做的时候,一步一步地,在每张画之间等待几秒钟。我已经寻找了一些解决方案,但我无法让它们适用于这种特殊情况。我看到我可以使用 fflush 来释放缓冲区中的任何内容,但我不知道如何使用它。

任何帮助将非常感激。

0 投票
1 回答
1522 浏览

c++ - 如何为子类 QComboBox 编写paintEvent()

我对 QComboBox 进行了子类化以对其进行自定义。在开始自定义之前,我编写了以下 paintEvent() 方法来测试是否正确应用了我的样式表。但是,如果我使用此paintEvent,则不会显示所选项目(已选择的一项-或-我新选择的一项)。

如何修复paintEvent?此外,是否有关于不同 Qt 控件的paintEvent 的文档?

0 投票
1 回答
2906 浏览

c++ - 为什么 QPainter 可能会拒绝在paintEvent 中工作?

我有:

这给出了:

为什么会这样?

更新

0 投票
1 回答
522 浏览

qt - 在paintEvent生成内容后调整大小

如何自动将任何小部件调整为paintEvent 方法生成的内容尺寸?

0 投票
2 回答
636 浏览

c# - 如何在用户命令中显示多个图像?

在用户按下 Gui 上的菜单后,我需要能够显示一组图像。我一直在尝试使用以下代码。

我认为这会起作用,但我得到了错误:

“System.EventArgs”不包含“Graphics”的定义,并且找不到接受“System.EventArgs”类型的第一个参数的扩展方法“Graphics”(您是否缺少 using 指令或程序集引用?)

我尝试用 PaintEventHandler 替换 EventHandler,但随后出现错误:

陈述:

“imagePalleteToolStripMenuItem_Click”没有重载匹配委托“System.EventHandler”

我还尝试将该行更改为:

但这也给出了一个错误说明:

无法将类型“System.Windows.Forms.PaintEventHandler”隐式转换为“System.EventHandler”r

*注意: *我的总体目标是调用一个对话框,以缩略图形式显示所有图像。因此,如果这不是正确的方法,请重定向我

0 投票
1 回答
4262 浏览

wpf - WPF 中的 Windows 窗体绘制等效事件

我使用 PAINT 事件在 Winows 表单应用程序的面板上绘制了一个波浪。但是当使用它 WPF 时,我没有找到任何与具有 Paint Event 的 Panel 等效的元素。谷歌搜索了很多,但没有很大的用处。

好吧,我需要在 WPF 中绘制波形,因此建议适当的解决方案 wrt PaintArgsEvent 或完全新的解决方案。

谢谢你!

0 投票
1 回答
1000 浏览

qt - 如何在 Qt 中使用 PaintEvent() 修改 QCombobox 当前项

我有一个组合框,它有 3 个项目,即项目 1、项目 2 和项目 3。我在 .ui 文件中添加了这 3 个项目,还使用资源文件为所有项目添加了一个图像。现在,当我运行应用程序时,它会在组合框中显示第一项以及向左显示的图像。当我单击下拉菜单时,我可以看到所有项目以及图像。

我基本上想做的只是在组合框中显示图像,当用户单击下拉菜单时,它也应该显示图像和文本。

场景: Combobox里面的item和image添加如下:

当我运行应用程序时,它应该在组合框中显示为

Image1

因为默认情况下会显示第一项。我认为可以在绘制当前选择时完成,QCombobox 使用重新植入:void MyCombo::paintEvent(QPaintEvent *e)这是我不知道的。

任何人都可以帮助我吗?:)

我怎样才能实现它???