经过我的测试,产生此中问题的有以下两个原因:

1、没有在QPainterEvent中绘图,而是在其他处。(如果想在其他处实现绘图操作,建议使用双缓冲机制进行绘制,

先把图形绘制到QPixmap中,然后调用update()函数,系统就会自动调用QPainterEvent虚函数,所以只需要继承QWidget,

然后重写其PainterEvent函数即可,双缓冲机制详情见我写的文章:Qt绘图双缓冲机制)

2、第二种原因是我自己测试出来的,当用QPainter对象在其begain()函数之前调用setpen()就会出现此错误,而在begain和end

函数之间调用setpen函数此错误就会消失。

注意:经过我的测试,多次为一个QPainer对象设置同一个pen并不会造成此种现象的产生。

虽然定义了 Qpainter 绘画对象,但是并没有将其关联到绘画设备。因此提示 Paint er 没有激活,如下图: 如果绘图设备是当前的Widget,直接在创建对象时绑定绘图设备,即可。 重新绑定绘图设备,界面就显示出来了。 QWidget:: paint Engine: Should no long er be called QPainter ::begin: Paint device returned engine == 0, type: 1 QPainter :: set Pen : Paint er not active QPainter :: set Pen : Paint er not active QPainter ::end: Paint er not active , aborted QWidget:: paint En
Qt的绘图系统允许使用相同的API在屏幕和其他打印设备上进行绘制,整个绘图系统基于 QPainter 、Q Paint Device和Q Paint Engine三个类。 ** QPainter 用来执行绘制操作,Q Paint Device是一个抽象的二维空间,这个抽象的二维空间允许 QPainter 在上面进行绘制,也就是 QPainter 的工作空间。Q Paint Engine为 QPainter 提供了在不同设备上进行绘制的接口**。 Q Paint Engine类应用于 QPainter 和Q Paint Device之间,通常对开发
Qt QAbstractScrollArea子类出现" Paint er not active "的一种原因 偶然,qt界面程序启动后,切换界面qt应用程序总是输出以下信息: QPainter ::begin: Paint device returned engine == 0, type: 1 QPainter :: set Rend er Hint: Paint er must be active to set ...
最近在开发软件的时候一直报这个错,影像中 QPainter 也是可以在 paint Event外面使用的,为什么会这样呢,于是经过一番调试才发现QImage在创建的时候size大小为0,所以才会报上面的错误,修正后就没错了,特此记录一下 附QT在QImage上绘图的代码 QImage m_shade; m_shade = QImage(100,100, QImage::Format_ARGB32/*_Premultiplied*/); QPainter p(&m_shade);
最近学习Qt 自定义绘画时碰到两个 问题 问题 如下: 自定义绘画图形,采用重写Q Paint Event,发现绘画不起作用; 1、 Qpainter 不刷新, 解决 方法:在触发刷新是,调用updata()函数强行更新。 其中 Qpainter 的父类应该是具体绘画的widget; 对于QGraphiscView:我所碰到的 问题 如下: QPainter ::fillPath: Paint er not active QPainter :: set Pen : Paint er not active QPainter ::r
QWidget:: paint Engine: Should no long er be called QPainter ::begin: Paint device returned engine == 0, type: 1 QPainter :: set Pen : Paint er not active QPainter ::drawPoints: Paint er not active
运用想要使用 QPainter 绘图时,运行时出现如上所示错误,原因如下:         因为QT不像MFC在什么时间都可以绘图,使用 QPainter 画图,就要继承QWidget,重写p paint Event()虚函数,在里面进行绘图。         如果要在其他地方绘制图形,可以考虑绘制到QImage或者QPixmap上面,然后在 paint Event()里面调用 QPainter 的绘制图像的
目录写在前面开发经验界面切换Qt信号槽传递参数Qt随机数的生成Qt绘图相关 问题 总结The code model could not parse an included file.程序异常结束ASS ER T failure in QList::at: "index out of range" QPainter :: set Pen : Paint er not active 毕设选题时,我选择了Qt编程开发相关的题目。一是很早就想选择编程主题的毕设,二是不太喜欢本专业的内容。因为相关基础知识的薄弱,我在使用基