用QML创建 QQuickWindow
来源:互联网 发布:java.net.encode 编辑:程序博客网 时间:2024/04/28 02:45
首先我们来看下 Qt向导创建的例子
选择 菜单文件->新建文件或项目->Qt Quick Application->QtQuick2.3
向导就为我们创建了一个hello world main.cpp 俺就介绍了,下面是自动生成的qml文件,我增加了注释
import QtQuick 2.3import QtQuick.Window 2.2//简单的类型与属性,不再注释。Window{ //这里的Window实际上就是实例化了一个QQuickWindow对象, //看起来像定义一个C++类,其实不是 这里是定义一个对象, //只不过我们没有给这个对象起名字,在QML里面,用id来访问。 visible: true //显示状态为显示 width: 360 //窗体宽度为360像素 height:360 //窗体高度为360像素 MouseArea { //MouseArea 从Item继承过来,负责鼠标交互区域, //MouseArea 实例化了一个对象 anchors.fill: parent //anchors就是父类Item的成员变量,但在帮助文档里面没有写到,应该是QQuickItem类型。 //后面我会详细介绍它。 //anchors.fill: parent布局器将父窗口的整个区域填充 onClicked: { //鼠标单击事件 Qt.quit(); //退出Qt程序 } } Text { //它也从Item继承过来的 text: qsTr("Hello World") //text是Text类型的成员变量,类型是string, //qsTr是函数名字,大概就是字符串的意思 anchors.centerIn: parent //布局器不说了 }}
这个运行的界面就不用介绍了,和其他程序创建的hello world差不多,但这个东东没有实用价值呀,下面我本着学习的态度,进行了修改,自定义了一个树叶子窗体。下面是运行效果图:
哈哈,那片叶子就是我的窗口啦
下面是在hello world基础上修改后的Qml文件
import QtQuick 2.3import QtQuick.Window 2.2//简单的类型与属性,以后可能会省略。Window{ //这里的Window实际上就是实例化了一个QQuickWindow对象, //看起来像定义一个C++类,其实不是 这里是定义一个对象, //只不过我们没有给这个对象起名字,在QML里面,用id来访问。 id:mainwindow visible: true //显示状态为显示 width: 110 //窗体宽度为360像素 height:110 //窗体高度为360像素 flags:Qt.FramelessWindowHint | //隐藏框框,标题栏等 Qt.WindowSystemMenuHint | //隐藏系统菜单 Qt.WindowMinimizeButtonHint //隐藏最大化最小化按钮 color: "transparent" //颜色设置为透明色 Image//定义一个图片,目的是填充整个主界面 { z:0 //z可以理解为层数 anchors.fill:parent //填满 source: "qrc:/images/realLeaf1.png"//这是那个树叶子图片,如果不会加载图片的同学自己研究下啊,我这篇文章不做介绍啦 } MouseArea { //MouseArea 从Item继承过来,负责鼠标交互区域, //MouseArea 实例化了一个对象 anchors.fill: parent //anchors就是父类Item的成员变量,但在帮助文档里面没有写到,应该是QQuickItem类型。 //后面我会详细介绍它。 //anchors.fill: parent布局器将父窗口的整个区域填充 property point clickPos: "0,0"//定义一个 point 类型 acceptedButtons: Qt.LeftButton | Qt.RightButton//接收鼠标左键和右键按钮,默认是接收所有鼠标按钮 onClicked: { if (mouse.button == Qt.RightButton)//鼠标右键单击 Qt.quit(); //退出Qt程序 else//鼠标左键单击 ; } onDoubleClicked: { //双击事件 //打开另一个qml } onPressed: { //鼠标按下 clickPos = Qt.point(mouse.x,mouse.y) } onPositionChanged: { //鼠标偏移量 var delta = Qt.point(mouse.x-clickPos.x, mouse.y-clickPos.y) //如果mainwindow继承自QWidget,用setPos mainwindow.setX(mainwindow.x+delta.x)//设置界面的新位置,实现拖拽功能 mainwindow.setY(mainwindow.y+delta.y) } }}
0 0
- 用QML创建 QQuickWindow
- 动态创建qml
- QML工程创建
- qml 动态创建TableView
- 如何创建QML自定义元素?
- 通过JavaScript创建Qml对象
- QML如何创建动态组件
- Qml中ToolTip的创建
- 使用QML来创建界面
- 为QML创建C++插件
- 使用QML来创建界面
- QML多页面的创建与返回
- 使用C++创建新的QML类型
- 创建第一个QML工程(学习中)
- QML学习笔记 创建页面表示方法
- 怎么创建一个qml控件单例
- Qml TabView 如何动态创建Tab
- Qt: 使用QML来创建界面
- Centos7 安装最新的Jmagick 6.7.7 版本使用ImageMagick
- pushViewController/presentModalViewController/addSubView区别及使用方法
- C++ UTF8编码转换 CChineseCode
- openstack 使用 spice
- 开始博客之旅
- 用QML创建 QQuickWindow
- HTML适应手机浏览器宽度
- slow query log
- 程序员开发中所碰到的一下困难
- sdut--Find a girl friend(结构体的二级排序)
- KETTLE如何实现实时的增量更新(两种方法)
- 神奇的mongo:索引
- c#中decimal ,double,float的区别
- 各种报错所谓何事?!