首页| 论坛| 消息

标题:Qt如何把QPainter绘图对象作为参数传递给业务类,由业务类完成绘图操作?
作者:ustone
日期:2018-05-15 09:22
内容:

Qt如何把QPainter绘图对象作为参数传递给业务类,由业务类完成绘图操作?
比如在窗体类中new一个业务类,把QPainter绘图对象作为业务类构造函数的参数传递进去,在业务类的多个成员函数中完成不同的绘图操作,大概要怎么弄?


#1 [ustone 05-15 11:25]
我用另一种办法解决了,绘制到QPixmap上,label->setPixmap()显示之,两者指针都作为参数传给业务类构造函数。
#2 回 ustone 的帖子 [ustone 05-16 08:36]
ustone:我用另一种办法解决了,绘制到QPixmap上,label->setPixmap()显示之,两者指针都作为参数传给业务类构造函数。 (2018-05-15 11:25) 
这种办法,QTimer定时器里调用大量重绘的话,性能很差亚,画面更新不流畅,进程占用CPU超过20%(笔记本三代i5四线程CPU,换算成单线程超过80%)。
同样的测试程序,用C++ Builder改写的,画面流畅,进程占用CPU仅1%~3%(编译选项未优化)。
不知道直接绘制到QPainter对象上性能会不会好点,
问题还是Qt如何把QPainter绘图对象作为参数传递给业务类,由业务类完成绘图操作?
#3 [jigetage 05-16 10:33]
有位置参数,QPainter在哪里绘制不都一样吗
#4 回 jigetage 的帖子 [ustone 05-16 20:02]
jigetage:有位置参数,QPainter在哪里绘制不都一样吗 (2018-05-16 10:33) 
QPainter(this)对象只能在paintEvent函数中绘制。
#5 [一米阳光 05-17 10:32]
图形数据可以保存起来,传递给业务类,业务类进行绘图(在Qt里面定义一个结构体,用来保存图形数据即可)

<< 1 2 >> (1/2)

回复 发表
主题 版块