• 317阅读
  • 10回复

[提问]这几种绘图方式,哪种性能更快? [复制链接]

上一主题 下一主题
离线wangjianxyz
 

只看楼主 倒序阅读 楼主  发表于: 05-22
今天才发现,Qt里的绘图方式很多。我找到5种。
QWidget paint    
QWidget Graphics View    
Quick Canvas    
Quick QQuickPaintedItem    
Quick QQuickItem    

这里,QWidget paint    应该是最老最差的。 其他几种,性能怎么排?
离线wangjianxyz

只看该作者 1楼 发表于: 05-22
我是想做一个类似于cad的软件,绘制一大堆的直线、矩形、图片、文字,等内容。
1条评分金钱+10
20091001753 金钱 +10 Graphics View 05-22
离线圣域天子

只看该作者 2楼 发表于: 05-22
几年前聊过一个创业搞开发CAD的,好象是搞设计电路板软件的,把Qt的性能说的一无事处,坚持使用MFC开发。
在线liudianwu

只看该作者 3楼 发表于: 05-23
回 圣域天子 的帖子
圣域天子:几年前聊过一个创业搞开发CAD的,好象是搞设计电路板软件的,把Qt的性能说的一无事处,坚持使用MFC开发。
 (2024-05-22 21:26) 

还别说,在win上,真的MFC的绘制性能超过Qt,毕竟Qt又经过了一层包装。但是如果要跨平台,那只能选Qt。而且这点性能损失在现在的硬件面前,差别不大。
欢迎关注微信公众号:Qt实战/Qt入门和进阶(各种开源作品、经验整理、项目实战技巧,专注Qt/C++软件开发,视频监控、物联网、工业控制、嵌入式软件、国产化系统应用软件开发) QQ:517216493  WX:feiyangqingyun  QQ群:751439350
离线wangjianxyz

只看该作者 4楼 发表于: 05-24
这几天,差了一些资料,Quick QQuickItem 似乎是最快的。但是好像需要opengl的知识?里面的使用方式看不太懂。
离线snow_man_0

只看该作者 5楼 发表于: 05-24
QWidget Graphics View简单些。说性能不行的,都是人不行
4条评分好评度+1贡献值+1金钱+10威望+1
20091001753 好评度 +1 - 05-25
20091001753 贡献值 +1 - 05-25
20091001753 威望 +1 - 05-25
20091001753 金钱 +10 - 05-25
离线wangjianxyz

只看该作者 6楼 发表于: 05-27
总结一下:

QWidget paint:
默认是软件渲染,最慢;
利用QOpenGLPaintDevice,可以在不改变代码的情况下实现一定的硬件加速,提高性能;
最快的方式,是不用Qt的Painter,直接用Qt的opengl的api,但是代码也最麻烦。

QWidget Graphics View :
本身用软件渲染的速度也很快;
也能设置硬件加速,提高性能;


Quick Canvas    
Quick QQuickPaintedItem  
他们本身也用了一定的硬件加速;速度适中;
可以设置参数,进一步硬件加速, 但也不是速度最快的;



Quick QQuickItem :
Qt的场景图绘制,本身用了opengl,本身就很快;(但代码本身也麻烦)
直接用opengl的api,最快,也最麻烦。


最终结论:
QWidget,就用Graphics View(开启硬件加速);
Qt Quick,就用QQuickItem 的场景图(scene graph);


如果要追求极致的性能,用Qt提供的opengl的api,直接写。









离线tonyzhou1985

只看该作者 7楼 发表于: 05-27
1.Qt Quick 基于Graphics View;
2.Graphics View 可以用opengl加速     所用用Graphics View做那种cad是最适合的,但是要熟练才行。

离线dbzhang800

只看该作者 8楼 发表于: 05-29
1. Qt Quick 基于Graphics View。这是Qt4时代的事情了。Qt5.0引入的QtQucik2已经和QtWidgets下的GrapihcsView没关系了。


2. Graphics View使用opengl加速的效果不好。QCad,KLayout这种CAD开源软件都不用 GraphicsView。qelectrotech 这种电气图的倒是在用

离线wangjianxyz

只看该作者 9楼 发表于: 05-29
回 dbzhang800 的帖子
dbzhang800:1. Qt Quick 基于Graphics View。这是Qt4时代的事情了。Qt5.0引入的QtQucik2已经和QtWidgets下的GrapihcsView没关系了。
2. Graphics View使用opengl加速的效果不好。QCad,KLayout这种CAD开源软件都不用 GraphicsView。qelectrotech 这种电气图的倒是在用
....... (2024-05-29 11:10) 

那QCad用的是哪种Qt的绘图技术?
离线toby520

只看该作者 10楼 发表于: 05-29
QtQML多多指教开发社区 http://qtclub.heilqt.com
将QtCoding进行到底
关注移动互联网,关注金融
开发跨平台客户端,服务于金融行业
专业定制界面
群号:312125701   373955953(qml控件定做)
快速回复
限100 字节
 
上一个 下一个