widget中调用qml
来源:互联网 发布:linux中date的用法 编辑:程序博客网 时间:2024/06/06 20:31
1.如果已经拥有一个基于Qwidget的用户界面,可以使用QDeclareativeView将QML部件整合进来,QDeclareativeView是Qwidget的子类,所以可以像其他QWidget部件一样将其添加到用户界面中去,使用QDeclareativeView::setSource()来加载一个QML文件到视图中,然后将该视图添加到用户界面中,下面来看一个例子。
新建一个新的Qwidget项目,并向项目中添加新的文件application.qml文件,并将其内容更改如下:
import QtQuick1.0
Rectangle {
id:mainRect;
width: 300;
height: 200
anchors.centerIn: parent;
color: "red";
Text{
anchors.centerIn: parent;
text:"my head is big";
font.pixelSize: 23;
z:1
}
Rectangle{
width: 100;
height: 100;
anchors.top:mainRect.top;
anchors.left: mainRect.left;
anchors.topMargin: 20;
anchors.leftMargin: 20;
z:0.5;
color:"blue";
}
}这样便创建了一个基于QWidget的视图来显示application.qml文件的内容。最后还要在项目文件中添加如下代码:QT +=declarative也就是说,必须添加declaration模块才可以在Qt程序中显示QML文件的内容。在main.c文件中的代码如下:#include "mainwindow.h"#include <QApplication>#include <QtDeclarative/QDeclarativeView>int main(int argc, char *argv[]){
QApplication a(argc, argv);// MainWindow w;// w.show();QDeclarativeView view;view.setSource(QUrl("../ym/application.qml"));view.show();return a.exec();}
必须要添加包含QtDeclarative文件。然后这样就能调试运行了。但是使用这种方式的一个缺点就是:与QWidget相比,QDeclareativeView初始化很慢,而且会使用更多的内存如果创建大量 的QDeclareativeView对象会导致性能下降,如果发生了这种情况,一个比较好的方法是在QML中重写这些部件,然后在主QML部件中加载这些部件,而不要使用QDeclareativeView。注意,与QML相比QWidget是为多种不同类型的用户界面设计的,所以将基于QWidget的应用程序和QML相连接并不总是一个好主意。如果用户界面是由少量复杂的静态元素组成的,那么最好使用QWidget部件来实现,而如果用户界面是由大量简单的和动态的元素组成,那么最好使用QML来实现。在说一句,如果在application.qml中没有包含任何图形组件,或者由于其他原因需要避免使用QDeclareativeView,那么就可以直接创建QDeclarativeEngine。
0 0
- widget中调用qml
- widget中调用qml
- qt 中调用QML
- QML中调用摄像头
- QTC++ widget中使用QML编写的UI界面
- qml中调用js中的函数
- qml和widget混合编程
- 创建及调用基于QT5 QML的 DLL(举例QML中使用QZXing识别二维码)
- C++与QML交互1:在C++中调用QML对象
- C++与QML交互2:在QML中调用C++特性
- QML 中调用本地标准的对话框如:QFileDialog QFontDialog
- Android App Widget中如何调用RemoteView中的函数
- QML调用C++函数
- c++调用qml
- Qml调用插件
- Qt5:QML:c++ 调用qml中的函数
- Qt-QML-QML调用C++类
- yii widget 调用过程
- c语言课后习题将“China”译成密码
- java线程安全总结
- 关于Oracle中sysoper这个系统权限的问题
- 算法训练 入学考试
- cocos2dx3.3开发FlappyBird总结六:设计共享小鸟类(主角)
- widget中调用qml
- 验证码的制作(二):使用开源组件jcaptcha来实现验证码
- java反射机制及性能优化问题
- python使用mysql数据库
- 对向量和矩阵求导、求迹、求期望的公式
- windows下Python环境的搭建
- 代码笔记——待整理
- Mongo的默认安装经常会导致各种安全问题
- delphi中WinExec的使用