Qml文件的两种加载方式|启动Qt quick app的两种方法
来源:互联网 发布:左程云 算法视频 下载 编辑:程序博客网 时间:2024/06/06 05:10
一种是QQmlApplicationEngine搭配Window,例如:
#include <QGuiApplication>#include <QQmlApplicationEngine>int main(int argc, char *argv[]){ QGuiApplication app(argc, argv); QQmlApplicationEngine engine; engine.load(QUrl(QStringLiteral("qrc:/main.qml"))); return app.exec();}
相应的qml文件是这样的:
import QtQuick 2.3import QtQuick.Window 2.2import QtQuick.Controls 1.4//实现对鼠标事件的处理和对文本的移动处理(键盘事件)Window { id:main; visible: true; MouseArea { acceptedButtons: Qt.LeftButton|Qt.RightButton;//确定接收哪些事件 anchors.fill: parent; onClicked: { if(mouse.button==Qt.LeftButton)//鼠标事件 { text.text="Leftbutton clicked"; } else if(mouse.button==Qt.RightButton) { text.text="Rightbutton clicked"; } } } Text { id:text; focus: true; x:50; y:50; anchors.bottom: t.bottom; Keys.enabled: true;//设置键盘可用 Keys.onPressed: { switch(event.key){//对键盘事件进行处理 case Qt.Key_Left: x-=10; event.accepted=true;//对接受到事件处理,避免再次向上传递 break; case Qt.Key_Right: x+=10; event.accepted=true; break; case Qt.Key_Up: y-=10;//因为原点在窗口的左上角 event.accepted=true; break; case Qt.Key_Down: y+=10; event.accepted=true; break; default:return } } color: "blue"; text: "hello world"; font.bold: true; font.pointSize: 16; styleColor: "#f51515"; verticalAlignment: Text.AlignVCenter; horizontalAlignment: Text.AlignHCenter; ColorAnimation on color { to: "black"; duration: 2000; } }
还有一种是QQuickViuew搭配Item。
当然这里所说的item就无需多说了,item是其他盒子模型的老祖……
因此在qml文件中,有window这个item的地方,你都要替换成Rectangle
例如:#include <QGuiApplication>#include <QQmlApplicationEngine>#include <QQuickView>int main(int argc, char *argv[]){ QGuiApplication app(argc, argv); QQuickView view; view.setResizeMode(QQuickView::SizeRootObjectToView); view.setSource(QUrl("qrc:/main.qml")); view.show(); return app.exec();}
相应的qml文件是这个样子的:
import QtQuick 2.3import QtQuick.Window 2.2import QtQuick.Controls 1.4//实现对鼠标事件的处理和对文本的移动处理(键盘事件)Rectangle { id:main; visible: true; MouseArea { acceptedButtons: Qt.LeftButton|Qt.RightButton;//确定接收哪些事件 anchors.fill: parent; onClicked: { if(mouse.button==Qt.LeftButton)//鼠标事件 { text.text="Leftbutton clicked"; } else if(mouse.button==Qt.RightButton) { text.text="Rightbutton clicked"; } } } Text { id:text; focus: true; x:50; y:50; anchors.bottom: t.bottom; Keys.enabled: true;//设置键盘可用 Keys.onPressed: { switch(event.key){//对键盘事件进行处理 case Qt.Key_Left: x-=10; event.accepted=true;//对接受到事件处理,避免再次向上传递 break; case Qt.Key_Right: x+=10; event.accepted=true; break; case Qt.Key_Up: y-=10;//因为原点在窗口的左上角 event.accepted=true; break; case Qt.Key_Down: y+=10; event.accepted=true; break; default:return } } color: "blue"; text: "hello world"; font.bold: true; font.pointSize: 16; styleColor: "#f51515"; verticalAlignment: Text.AlignVCenter; horizontalAlignment: Text.AlignHCenter; ColorAnimation on color { to: "black"; duration: 2000; } }}
对比后发现,就是Window换成了Rectangle,如果你不更换,就会变成空白。
0 0
- Qml文件的两种加载方式|启动Qt quick app的两种方法
- Qml文件的两种加载方式|启动Qt quick app的两种方法
- Qml文件的两种加载方式
- Qt Quick App的两种启动模式
- Qt中使用Quick2动态加载QML组件的两种方式
- qml在开发板上启动时,出现白屏(qml的两种加载方式)
- 启动app的两种方式
- QT c++程序使用qml的两种方法
- QT c++程序使用qml的两种方法
- QML学习之Qt Quick App的加载模式
- Qt 加载QML 文件的几种方式
- 加载xib文件的两种方式
- C++与QML实现交互的两种基本方式
- 泛型,Quick Sort 的C/C++两种实现方式
- Flash动态加载swf文件的两种方式
- Android加载布局文件的两种方式及区别。
- Python加载csv文件的两种方式
- JavaScript加载XML文件的两种方式
- 笔试题总结-第一次面试
- String ,Stringbuffer ,StringBuilder;
- 用JAVA进行图像识别的小程序
- 面试1-HTTP状态码
- At91sam9g35K烧录Linux系统
- Qml文件的两种加载方式|启动Qt quick app的两种方法
- Yii createCommand CURD操作+个人总结
- 学习python2.7的迭代器
- UIPickerView
- 设计模式_观察者模式
- a:link,a:visited,a:hover,a:active 区别
- codeforces--651B Beautiful Paintings
- Linux平台weblogic集群安装(一)
- HTML学习笔记(一)