graphicview和widgets没本质区别。它只是更轻量级,更灵活,性能更高的widgets
graphicview和widgets没本质区别。它只是更轻量级,更灵活,性能更高的widgets。核心就是把widgets变成了更轻量级的graphicitem,把QWidget的各种事件转换成了graphics自己的一套event,写起来和写widgets差别不大,只不过整个view里就只有QGraphicView一个widget了,底下的都是item。
目的么,就是让界面更加灵活,更加轻巧,并且对拖放、动画的支持更好。比如我试过写扫雷,扫雷的格子尝试过用QWidget做和用QGraphicItem做,QGraphicItem性能更高。
但最近我有点返朴归真了……
现在我是把扫雷的雷区MineField直接用一个QFrame表示,格子全部用paintEvent在这个field里手撸,性能碾压上述两个……
如果用QML么,性能的下限都是我手撸paintEvent级别,灵活性更为胜之。也就是说,不管在性能还是在灵活性封装性上,都是最好的。
作者:诸葛不亮
链接:https://www.zhihu.com/question/52990704/answer/133000899
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
graphicview和widgets没本质区别。它只是更轻量级,更灵活,性能更高的widgets的更多相关文章
- VS2008 Debug与Release的本质区别(转)
如何设置:工具栏“生成”→“配置管理器”→“活动解决方案配置” 对于VS2008的初次使用者来说,常会遇到的编译问题时,Debug版本运行正常,但在Release版本则不稳定或无法运行.以下是对Deb ...
- 【转】HTTP POST GET 本质区别详解
一 原理区别 一般在浏览器中输入网址访问资源都是通过GET方式:在FORM提交中,可以通过Method指定提交方式为GET或者POST,默认为GET提交 Http定义了与服务器交互的不同方法,最基本的 ...
- HTTP POST GET 本质区别详解
HTTP POST GET 本质区别详解 一 原理区别 一般在浏览器中输入网址访问资源都是通过GET方式:在FORM提交中,可以通过Method指定提交方式为GET或者POST,默认为GET提交 Ht ...
- 多线程第一次亲密接触 CreateThread与_beginthreadex本质区别
本文将带领你与多线程作第一次亲密接触,并深入分析CreateThread与_beginthreadex的本质区别,相信阅读本文后你能轻松的使用多线程并能流畅准确的回答CreateThread与_beg ...
- Debug 和 Release 编译方式的本质区别
一.Debug 和 Release 编译方式的本质区别 Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序.Release 称为发布版本,它往往是进行了各种优化,使得程 ...
- Debug和Release之本质区别
转自Debug和Release之本质区别 Debug 和 Release 编译方式的本质区别 Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序.Release 称为发 ...
- (转)CreateThread与_beginthreadex本质区别
本文将带领你与多线程作第一次亲密接触,并深入分析CreateThread与_beginthreadex的本质区别,相信阅读本文后你能轻松的使用多线程并能流畅准确的回答CreateThread与_beg ...
- 多线程面试题系列(2): CreateThread与_beginthreadex本质区别
本文将带领你与多线程作第一次亲密接触,并深入分析CreateThread与_beginthreadex的本质区别,相信阅读本文后你能轻松的使用多线程并能流畅准确的回答CreateThread与_beg ...
- 转-HTTP POST GET SOAP本质区别详解
原文链接:HTTP POST GET SOAP本质区别详解 一 原理区别 一般在浏览器中输入网址访问资源都是通过GET方式:在FORM提交中,可以通过Method指定提交方式为GET或者POST,默认 ...
随机推荐
- 处理SpringMVC的时间错误:Field error in object 'sysDatumedetai' on field 'storagetime': rejected value [2017-11-27];
错误: 十一月 27, 2017 8:26:11 下午 org.apache.catalina.core.StandardWrapperValve invoke 严重: Servlet.service ...
- CSUOJ 1638 Continued Fraction
1638: Continued Fraction Time Limit: 1 Sec Memory Limit: 128 MB Description Input Output Sample Inp ...
- Struts2的token标签
“token标签的实现原理是在表单中增加一个隐藏域,每次加载该页面时,该隐藏域的值都不相同.而TokenInterceptor拦截器则拦截所有用户请求,如果两次请求时该token对应隐藏域的值相同(前 ...
- [Python] Manipulate Data with Dictionaries in Python
Dictionaries may be familiar to you as hash maps. In this lesson, you will learn how to create them, ...
- ZOJ 3690 & HDU 3658 (矩阵高速幂+公式递推)
ZOJ 3690 题意: 有n个人和m个数和一个k,如今每一个人能够选择一个数.假设相邻的两个人选择同样的数.那么这个数要大于k 求选择方案数. 思路: 打表推了非常久的公式都没推出来什么可行解,好不 ...
- poi excel自己主动转换成javabean 支持引用类型属性二级转换
近期项目须要使用excel导入功能.导入学生的时候须要指定所在班级,使用excel一次性导入! 将曾经的代码改改支持属性内引用类的转换. 測试对象为User对象,javabean结构: private ...
- 机器学习Python实现AdaBoost
adaboost是boosting方法多个版本号中最流行的一个版本号,它是通过构建多个弱分类器.通过各个分类器的结果加权之后得到分类结果的.这里构建多个分类器的过程也是有讲究的,通过关注之前构建的分类 ...
- tensorflow 语法及 api 使用细节
1. tf.nn.conv2d 的参数 padding='SAME' ⇒ 卷积之前的大小和卷积之后的大小一致,默认使用全 0 填充: padding='VALID' ⇒ 也即仅适用其有效部分,而不使用 ...
- vue的指令在webstrom下报错
Preferences -> Editor -> Inspections找到XML,把 Unbound XML namespace prefix的勾去掉
- windows下gopath设置
下载了go语言的安装包, 然后安装, 装完了需要设置三个地方: 1. 在windows的PATH变量中添加go的可执行文件所在的目录: PATH=C:\Go\bin;其他设置; 2. 设置 GOROO ...