杂烩:QWiget、QGraphics、QtQuick
来源:互联网 发布:java无限循环停止代码 编辑:程序博客网 时间:2024/05/22 02:10
一说起Qt 大都会想起Qt的GUI编程,具体到某个类的话,最多的就是QWidget类及其子类了。
其实Qt中还有基于项的图形视图,具体来说QGraphicsView,QGraphicsScene,QGraphicsItem三个类了。
看看这个文章关于QGraphics*
和QWidget比较,QGraphics有什么不同呢?
主要在如下方面吧:
1.QGraphics*类可以设置rotation,但是QWidget不行。
2.基于上述原因,QWidget在移动设备上(分横竖屏)就不能很好的适应屏幕的方向
3.由于是基于项的图形视图,管理一个个QGraphicsItem变得十分容易,可以在一个Scene中管理成百上千的视图项
4.qml是基于QGraphics的(Qt4&5),而qml已经成为Qt未来发展的趋势(将类注册到脚本环境中,在脚本环境中被管理和动态创建)
但QGraphics中没有像QWidget类那样有丰富的控件。而且将QWidget进行重写,变成QGraphics类不是那么明智,基于此,QGraphics是支持将QWidget添加到他的视窗体系的。
QGraphicsProxyWidget 类
从QGraphicsView获取当前的QGraphicsScene,然后调用QGraphicsScene::addWidget(QWidget *) ,这个函数将一个你想要添加的QWidget添加到视图系统中,并返回一个QGraphicsProxyWidget 对象指针,通过QGraphicsProxyWidget 对象可以设置QWidget的rotation,transfrom等等QGraphicsItem专有的属性
好了说了这么多,其实我想说的是QtQuick 的原c++类是QDeclarative* ,而QDeclarative*主要继承自对应的QGraphics*类,这也说明了QtQuick是基于项的视图系统。
然后,你就可以将之前的编写好的QWidget*类的控件注册到qml中,再以脚本的方式动态创建。这样的话,qml的拓展机制实在是太变态了(得益于Qt的元对象系统)。
没有图你说个****啊~
关于代码和实例明天在上传吧~
后记:其实QtQuick是Qt发展的产物,Qt的QGraphics*视图以及QStyle(qss)其实就是QtQuick的雏形了,而动态脚本编程越来越受欢迎,QtQuick(qml)成为Qt未来的趋势也是理所当然的。关于脚本的执行效率,总是会解决的。这不,Qt公司推出了QtQuick Compiler
- 杂烩:QWiget、QGraphics、QtQuick
- 杂烩
- 杂烩
- 杂烩
- 浅谈QGraphics
- QGraphics系统
- QGraphics坐标
- QtQuick大杂烩
- QtQuick 技巧
- Java杂烩
- 电影杂烩
- vi杂烩
- Hibernate杂烩
- Linux杂烩
- 技术杂烩
- SSO杂烩
- iOS 杂烩
- iOS 杂烩
- 而立之年,开发者在害怕什么?
- Linux有问必答:如何在Debian下安装闭源软件包
- 通过ui,自定义QMenu 控件
- wxWidgets程序总结
- libevent简单使用小结
- 杂烩:QWiget、QGraphics、QtQuick
- python jdango 数据库查询总结
- Code Review
- Your project contains error(s),please fix them.... 问题解决
- pre小技巧:强制换行与横向滚动条[转]
- VC6.0下设置Unicode编译环境
- android 项目出现 Theme.AppCompat.Light 的解决方法
- VirtualBox安装增强功能包
- SQLSERVER 存储过程实现分页查询 C#后台获取查询结果集