四 、QML常用控件的使用详解

news/2024/4/20 0:03:23/文章来源:https://blog.csdn.net/qq_36038987/article/details/128954970

在Qt Quick的世界里,window对象用于创建一个与操作系统相关的顶层窗口,而其他的元素,如Text Rectangle,Image等,都睡Windows提功能场景里面的显示对象,Window还有一个派生类,即是大名鼎鼎的Application Window ,可以作为QML 文档的根对象。

  1. windows窗口对象属性的说明

import QtQuick.Window 2.1

通过上面的引用,Window对象就可以创建一个最顶层的窗口作为Qt Quick的活动窗口。他自动设置好了窗口的基本属性,例如 标题 系统按钮 图标等。也可以手动进行编辑window基本对话框显示的属性更改。windows基本对话框完成之后,就可以引用QtQuick 2.x QtQuick.Controls 1.x 等模块开始起作用了

  1. Window属性设置

Window 属性有mininumWidth,minimunHeight 来限制窗口的最小尺寸,对于管理属性如下介绍:

Window. Windowed 设置窗口占屏幕的一部分

Window.Minimized 最小化到任务栏的一个图标

Window.Maximized 最大化

Window.FullScreen 全屏显示

Window.AutomaticVisibility 给window设置一个默认的显示状态

Window.Hidden 隐藏窗口

  1. color 属性的设置

color属性用来谁窗口的颜色,可以使用 blue ,“#897776”,Qt.rgba()等形式;

  • contentOrientation属性的设置

Qt.PrimaryOrientaton 使用显示设备的首选方向

Qt.LandscapeOrientation 横屏

Qt.PortraitPrientation 竖屏

Qt.InvertedLandscapeOrientation 先对横屏旋转180度

  1. 模态属性

一个窗口的状态由modality(模态)属性决定的,

Qt.NonModal 非模态

Qt.WindowModal 窗口级别的模态,设置此属性的窗口只针对某一个窗口的模态的,子窗口相对父窗口是是模态的。

Qt.ApplicationModal 应用级别的模态,设置此属性会阻止同一应用的其他事件输入的响应;

  • ApplicationWindow介绍

ApplicationWindow是Window的派生类,使用他需要使用下面语句引入Controls模块

import QtQuick.Controls 1.2

如果学习过Qt ApplicationWindow 有点像QMainWindow 窗口有menuBar,toolBar等状态栏。

  1. 基本控件的使用介绍

如果进行过GUi开发,想必对控件的使用不会不熟悉,例如Button ListTable 等;

  1. Rectangle

下面就对一个矩阵对话框控件的创建和显示进行讲解

Rectangle{
width: 320    //宽
height:480  //长
color :"blue"  //内部颜色
border.color:"#808080"   //边框颜色
border.width :2  //边框宽度
radius:12  //四周弧度
}
  1. Item

Item是QtQuick所有可视元素的基类,其属性有 x、y、width、height 、anchoring、key、z、rotation等,具体的使用如下,修改自定义Rectangle的显示位置等信息;

Item{Rectangle{x:20    //可以进行设置显示的位置y:20id: win1width: 320    //宽height:480  //长color :"blue"  //内部颜色border.color:"#808080"   //边框颜色border.width :2  //边框宽度radius:12  //四周弧度}Rectangle{id:win2x:123y:30width: 320    //宽height:480  //长color :"blue"  //内部颜色border.color:"#808080"   //边框颜色border.width :2  //边框宽度radius:12  //四周弧度}
}
  1. 使用锚(anchoring)布局定位器

anchors 提供了一种,确定元素显示的位置定位

你可以理解为,每个Item都有七条不可见的锚线:left,right,top,bottom,horizontalCenter,verticalCenter

使用anchors 布局的时候,除了对齐锚线,还可以指定控件的四周的留白,margin代表着四周的留白;

指定topMargin bottomMargin,leftMargin,rightMargin 如上图

Rectangle{width:200height:300Rectangle{//设置rectangle 与父窗口左上对齐anchors.left :parent.leftanchors.leftMargin:20anchors.top:parent.topanchors.topMargin:20x:20    //可以进行设置显示的位置y:20id: win1width: 320    //宽height:480  //长color :"blue"  //内部颜色border.color:"#808080"   //边框颜色border.width :2  //边框宽度radius:12  //四周弧度}Rectangle{//设置rectangle 靠近win1 对话框显示anchors.left :win1.right   //设置win2 在win1右边显示anchors.leftMargin:20anchors.top:win1.topanchors.topMargin:20id:win2x:123y:30width: 320    //宽height:480  //长color :"blue"  //内部颜色border.color:"#808080"   //边框颜色border.width :2  //边框宽度radius:12  //四周弧度}
}

具体如下图显示

  1. 按键Key的使用

Keys对象也是Qt Quick提供的,专门供Item处理按键事件的对象。

import QtQuick 2.2
Rectangle{width:300;height:200;color :"red";focus:true;Keys.enabled:true;Keys.onEscapedPressed:Qt.quit();  //当esc按键点击的时候 就会处理后边关闭应用的借口调用Keys.onBackPressed:Qt.quit();}
  1. Text属性介绍

Text属性就是label标签的字体显示

import QtQuick 2.2
Rectangle{width:200;height:100;text:"hello world!"; //在屏幕上显示helloworld字样font.bold:true  //对字体属性设置 加粗font.underline:true //字体下面显示横线anchors.centerIn :parent //显示在窗口的中间
}

  1. Button 控件的讲解

按是Gui软件中使用频率比较高的一控件,有Clicked release等触发事件;

import QtQuick 2.2
import QtQuick.Control 1.2
Rectangle{width:320height:240Button{text:"Ok"anchors.centerIn:parentonClicked:{Qt.quit(); //点击信号槽定义和书写}}
}
  1. FileDialog

FileDialog 是Qt Quick 中的文件对话框大可以用来选择已有的文件,文件夹,支持单选,多选,也可以用来保存文件或创建文件夹时让客户提供一个名字

FileDialog{id:filedialogtitle:"please select a file,"nameFilters:["Image Files (*.jpg)]  //过滤图片文件selectednameFilter:"Image Files(*.jpg)"  // 过滤的名字selectMultiple:true  //设置多选onASsccepted:{imageViewer.source = fileDialog.fileUrls[0] //保存路径
}
}

总结

通过今天的讲解,就把QtQuick 初步使用的基础详细的介绍了一遍,例如Text Button Key的使用,如果一路操作下来应该对Qml编写的语法有了初步的理解;接下来我们开始对ECMAScript语言规范进行详细的介绍,这样就能对qml语言有了清晰的认知,敬请期待!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_255796.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ABAP 搜索帮助带出多个字段描述 更新屏幕字段

文章目录需求解析1-DYNP_GET_STEPL2-F4IF_INT_TABLE_VALUE_REQUEST3-获取返回值4-把相应字段更新到内表5-DYNP_VALUES_UPDATE代码需求 如图,当我点击责任工序的搜说帮助时, 同时会把责任人员的描述带出来. 解析 1-DYNP_GET_STEPL 这个方法就是获取当前的循环步骤 2-F4IF_I…

WorkTool无障碍服务实现企业微信机器人接口

前言 想要实现一个企业微信机器人,如京东/拼多多福利群、美团瑞幸定时营销群、自助订单查询、智能咨询或社群管理机器人等,首先官方未提供外部群/客户群的机器人API,会话存档也只在一定场景下适用,及时使用会话存档也存在只能收不…

opencv+python物体检测【03-模仿学习】

仿照练习:原文链接 步骤一:准备图片 正样本集:正样本集为包含“识别物体”的灰度图,一般大于等于2000张,尺寸不能太大,尺寸太大会导致训练时间过长。 负样本集:负样本集为不含“识别物体”的…

微服务--Gateway网关学习

Gateway服务网关 为什么需要网关 网关功能: 身份认证和权限校验服务路由,负载均衡请求限流 网关的技术实现:在SpringCloud网关的实现包括两种: gatewayzuul Zuul是基于Servlet的实现,属于阻塞式编程。而SpringCloudGa…

车道线检测-E2E_LSFitting 论文学习笔记

论文:《End-to-end Lane Detection through Differentiable Least-Squares Fitting》 代码:https://github.com/wvangansbeke/LaneDetection_End2End 材料:https://zhuanlan.zhihu.com/p/94419168 特点: 拟合二次曲线&#xff1b…

专家说年轻人工资低是能力不行….

我们国家的很多专家总讲究语不惊人死不休,同时他们还很喜欢话风高速原地调头。 最近又有一个碉堡了的专家在大放厥词,就在前几天的首届长白山高峰论坛上中航基金副总经理邓海清发表批评年轻人的言论,邓老板是这么说的:很多年轻人…

synchronized 关键字-监视器锁 monitor lock

1.代码示例: package thread3;import java.util.Scanner;public class Test2 {public static Object object new Object();public static void main(String[] args) throws InterruptedException {Thread thread1 new Thread(() -> {Scanner scanner new Sca…

第五十一章 BFS进阶(一)——双端队列广搜

第五十一章 BFS进阶(一)——双端队列广搜一、原理二、例题1、问题2、分析三、代码一、原理 在介绍双端队列广搜之前,我们先回顾一下堆优化版本的dijkstradijkstradijkstra算法。 在这个算法中,我们使用的是小根堆来找到距离起点…

Windows/VM虚拟机安装黑群晖6.1-----保证有效而且简单操作

1视频:Windows/VM虚拟机安装黑群晖教程_哔哩哔哩_bilibili2:网址:Synology Web Assistant3:重新打开群晖操作步骤1:按着视频下载好资源后,按照视频操作,途中修改地方(两个情况选择其中一个&…

Flowable进阶学习(九)数据对象DataObject、租户Tenant、接收任务ReceiveTask

文章目录一、数据对象DataObject二、租户 Tenant三、接收任务 ReceiveTask案例一、数据对象DataObject DataObject可以⽤来定义⼀些流程的全局属性。 绘制流程图,并配置数据对象(不需要选择任意节点) 2. 编码与测试 /*** 部署流程*/ Test…

函数/任意波形发生器 DG5072 技术资料

函数/任意波形发生器 DG5072 DG5000人性化的界面设计和键盘布局,给用户带来非凡体验;丰富的标准配置接口,可轻松实现仪器远程控制,为用户提供更多解决方案。 产品特性 4.3英寸16M真彩TFT液晶显示屏 350 MHz、250MHz、100 MHz或70…

微信卸载后重装的聊天记录还能找回吗?

很多人微信卸载后,问能不能恢复之前的聊天记录? 我想大家肯定都去百度搜索了,能搜出来可行的办法了么,没有是吧,那就看看我能不能帮到你,根据我的经验来解决。 答:理论上是不能的,因…

详细聊聊spring核心思想

犹记我当年初学 Spring 时,还需写一个个 XML 文件,当时心里不知所以然,跟着网上的步骤一个一个配置下来,配错一个看着 error 懵半天,不知所谓地瞎改到最后能跑就行,暗自感叹 tmd 这玩意真复杂。 到后来用上…

C语言入门教程||C语言 循环||C语言 函数

C语言 循环有的时候,可能需要多次执行同一块代码。一般情况下,语句是顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推。编程语言提供了允许更为复杂的执行路径的多种控制结构。循环语句允许我们多次执…

【Django】云笔记项目

一、介绍 用户可在系统中记录自己的笔记,用户的数据被存储在云笔记平台;用户和用户之间的数据为隔离存储(登陆后才能使用相关笔记功能,且只能查阅自己的笔记) 二、功能拆解 1、用户模块 注册:成为平台…

【Java 面试合集】简述下自定义异常的应用场景

简述下自定义异常的应用场景 1. 概述 如上图所示,我们想回答这个问题就要了解异常的基本结构。哪些是我们可以控制的,哪些是我们不能控制的。 也许有人会问了,其实在逻辑中可以多加判断,为什么要需要自定义呢。 其实判断的内容无…

跳跃游戏 II 解析

题目描述给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说&#xff0c;如果你在 nums[i] 处&#xff0c;你可以跳转到任意 nums[i j] 处:0 < j < nums[i] i j < n返回到达 nums[n - 1] 的…

【i2c协议介绍】

文章目录协议简单介绍五种速度模式master/slave和transmitter/receiver关系第一种情况&#xff1a;master作为transmitter&#xff0c;slave作为receiver第二种情况&#xff1a;当master作为receiver&#xff0c;slave作为transmitteri2c基本信号start产生stop信号数据传输有效…

基于OpenCV 的车牌识别

基于OpenCV 的车牌识别 车牌识别是一种图像处理技术&#xff0c;用于识别不同车辆。这项技术被广泛用于各种安全检测中。现在让我一起基于 OpenCV 编写 Python 代码来完成这一任务。 车牌识别的相关步骤 1. 车牌检测&#xff1a;第一步是从汽车上检测车牌所在位置。我们将使用…

《Spring揭秘》记录

IOC部分 IOC不等于IOC容器&#xff0c;即使不使用spring&#xff0c;我们也可以使用IOC&#xff0c;只不过spring提供了IOC容器实现。Spring的IoC容器的功能就包含一个提供依赖注入服务的IoC Service Provider。它提供两方面的支持&#xff0c;业务对象的构建管理和业务对象间的…