三、QML开发之qml 语言基础

news2024/11/13 16:44:17

QML就是用来编辑和生成Quick界面的语言,所以在开发界面之前一定要了解基础的QML语言基础知识,接下来从介绍qml语法如何编写,变量和属性 对象的简要说明,通过本节的学习能够达到简单的加载图片 和设置lable标签存放位置,简单的buton点击事件的处理等;

3.1 对象 表达式 属性

  • QML 文件就是后缀是.qml结尾的文件,下面用一个小例子来介绍具体的内容书写;

功能很简单就是把一张照片放到一个定义的界面中央

import QtQuick 2.12  //代码库的引用方式和python的方式很像 quick理解为事件处理类吧
import QtQuick.Window 2.12   //理解为控件样式类吧
import QtQuick.VirtualKeyboard 2.4

Window {  //定义主窗口对象
    id: window    //窗口的id 一个对象唯一的 在表达式中可以直接引用id来进行处理事件调用
    visible: true   //是否隐藏
    width: 640    //界面的大小设置
    height: 480
    title: qsTr("load photo")  //head 展示字体

    Rectangle { //定义窗口对象
        width: 640    //界面的大小设置
        height: 480
        Image{  //定义图片对象
            source:"qrc:river.jpg"  //加载图片资源
            anchors.centerIn:parent //位置定位在 parent 也就是Rectangle 的屏幕中央
        }

    }


}

解释:

Rectangle { //定义窗口对象 也就是控件的名称 例如table window mouse Image 等等

id :window //这几个都是对象的属性 id,后续关联信号的时候会用得到 长 宽

width: 640 //界面的大小设置

height: 480

Image{ //定义图片对象 一个对象里面可以放其他的对象 简单的说就像一个面板

source:"qrc:river.jpg" //加载图片资源

anchors.centerIn:parent //位置定位在 parent 也就是Rectangle 的屏幕中央

}

}

属性的类型:int 、real、 double、 bool、string、color、list、font、等

  • 如何在工程里面加载图片资源,首先需要创建一个resource文件

  • 点击工程名-〉add new -〉 Qt -〉Qt Resource File-〉 取名字-》完成

  • 点击 刚才新建 的photo.qrc文件 右击-》添加文件 -》选择本地的图片

  • 编译运行如下图:

3.2信号处理器

  • 信号处理器起始等同于Qt的信号槽,用来处理定义信号发射和接受的函数;

Rectangle{
    width :320
    height:480
    Button{
        id: quick;  
        text:"退出"
        anchors.left:parent.left; //anchors 可以理解为布局管理器 用来设置控件显示的位置 后续会专门讲
        anchors.lefMargin 4
        anchors.bottonMargin 4
        anchors.bottom:parent.bottom
        onClicked:{        //这个就是定义了Button 点击事件的处理函数 当点击后进入函数体中执行Qt.quit()g关闭窗口看书  Qt是全局类 用来处理 按键 布局属性设置  系统调用接口等
            Qt.quit()
        }
}
}

3.3列表属性

  • 所谓的列表属性就是多个控件的包含关系

Item{

children:[

Image{},

Text{},

Button{}

]

}

  • Item 对象有一个children对象,children对象里面包含了三个对象,访问对象可以用 []形式给list对象赋值

length 属性提供list内的元素个数,下面代码就是访问子节点的方式;

    Item{
        children:[
            Text{ id:1},
            Text{id:2}
        ]
    }
    Component.onCompleted:{  //当控件加载完成之后就会触发改事件
        for(var i=0;i〈children.length;i++){  //遍历成员
        console.log(“the name is ”,i,":",children[i].text)  //打印输出每个成员的文本名字
        }
    }

3.3总结:

本节讲述了如何使用文本编辑一个对象,在对象里面设置一些属性,以及如何编写控件点击事件的函数绑定和调用。

下一节就开始对每一个对象例如Window Rectangle Button等具体的样式修改和属性介绍,敬请期待下一个 谢谢大家的阅读。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【零基础】学python数据结构与算法笔记14-动态规划

文章目录前言88.动态规划介绍89.钢条切割问题90.钢条切割问题:自顶向下实现91.钢条切割问题:自底向上实现92.钢条切割问题:重构解93.最长公共子序列最长公共子序列:实现总结前言 学习python数据结构与算法,学习常用的…

CSS+JS 弹窗

弹窗 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>弹窗</title><style type"text/css">.alert {display: none;justify-content: center;align-items: center;width: 100%;height: 100vh;backgro…

输入一个url后发生了什么 js性能优化

文章目录从一道题开始&#xff1a;输入一个url后发生了什么&#xff1f;1.请求协议可聊点1&#xff1a;http协议相关> 追问: http与TCP可聊点2&#xff1a; https协议相关> 追问&#xff1a;http与https2.域名解析3.web服务器4.服务(2、3)涉及到 网络优化5.浏览器渲染6.脚…

【Zookeeper】关于windows安装问题整理汇总

文章目录常规安装&#xff1a;1、windows配置zoo.cfg之后&#xff0c;提示&#xff1a;JAVA_HOME is not set.1.1 本地没有安装JDK或者没有配置JAVA_HOME解决方案&#xff0c;参考JDK安装下载办法1.2 本地配置的JDK但是环境变量JDK路劲不叫名字“JAVA_HOME”解决方案&#xff1…

docker容器将系统盘空间占满的解决办法

最近遇到一个问题&#xff0c;线上服务器的系统盘空间被占满了&#xff0c;导致服务不能正常运行了。docker启动时会报出下面这个错误no space left on device排查用到的命令&#xff0c;显示当前路径下占用空间超过1G的文件或文件夹du -h --max-depth1|grep G|sort -n经过一番…

SAP FICO 详细解析新总账功能 - 平行分类账配置

平行分类账配置 其作用简单来说就是&#xff0c;同时一笔记账&#xff0c;会产生多个账套的凭证。 【配置流程】 1、定义总账会计核算的分类账 账套可以有多个&#xff0c;但是主分类账有且只有一个。 表FAGLFLEXT就是存储所有财务分类账发生额数据的汇总表。 勾选多个“主…

CSS知识梳理

CSS的三大特性 一 . 层叠性 : 相同选择器给设置相同的样式&#xff0c;此时一个样式就会覆盖&#xff08;层叠&#xff09;另一个冲突的样式。层叠性主要解决样式冲突的问题 层叠性原则 : 样式冲突&#xff0c;遵循的原则是就近原则&#xff0c;哪个样式离结构近&#xff0c…

在Azure应用程序按指定时区的时间来输出日志(NLog)

部署在Azure应用程序使用NLog组件进行日志输出&#xff0c;如购买的Azure云是国际版&#xff08;非中国版Azure&#xff09;&#xff0c;默认使用国标时间&#xff08;即&#xff1a;UTC&#xff09;来输出日志时间&#xff0c;与中国地区的时间相差8小时&#xff08;即&#x…

NodeJs使用mysql.createPool连接池

1. 建库连库 连接MySQL数据库需要安装支持 npm install mysql 我们需要提前安装按mysql sever端 建一个数据库mydb1 mysql> CREATE DATABASE mydb1; mysql> SHOW DATABASES; -------------------- | Database | -------------------- | information_schem…

客快物流大数据项目(一百零三):快递追踪需求介绍

文章目录 快递追踪需求介绍 ​​​​​​​前言 背景介绍 快递追踪需求介绍 ​​​​​​​前言

Juicesync实现对腾讯云CHDFS存储的数据迁移

文章目录前言一、Juicesync准备二、Hadoop准备三、迁移实验四、实现思路前言 近年来&#xff0c;云计算越来越流行&#xff0c;企业从自身利益出发&#xff0c;或是不愿意被单一云服务商锁定&#xff0c;或是业务和数据冗余&#xff0c;或是出于成本优化考虑&#xff0c;会尝试…

Electron + vite + vue3简单实现

文章目录一、创建Electron应用程序1. 初始化vite项目2. 安装electron3. 修改配置文件4. 编写electron文件5. npm run dev 运行二、打包1. 安装包2. 配置打包脚本3. 渲染进程和主进程的通信渲染进程主进程一、创建Electron应用程序 Electron官网 1. 初始化vite项目 npm creat…

【区块链技术前沿】可下载内容与NFT

发表时间&#xff1a;2022年3月29日 信息来源&#xff1a;coingeek.com 目前&#xff0c;DLC&#xff08;可下载内容&#xff09;仍然是备受争议的话题&#xff0c;但却是电子游戏世界在2010年代选择的一个非常成功的市场方向。许多游戏玩家继续抱怨着电子游戏发行商在敲诈用户…

认识Panda3D引擎bam相关命令

看一下Panda自带命令&#xff0c;其中有bam相关的&#xff0c;来了解一下&#xff1b; 输入一个命令看一下&#xff0c;提示需要输入一个bam文件名&#xff1b; 查一下&#xff0c;查到一个介绍一种bam文件的资料如下&#xff0c; SAM (Sequence Alignment/Map) 格式是一种通用…

Springboot +Shiro +VUE 前后端分离式权限管理系统

前言前后端分离&#xff0c;一般都是通过token实现&#xff0c;本项目也是一样&#xff1b;用户登录时&#xff0c;生成token及 token过期时间&#xff0c;token与用户是一一对应关系&#xff0c;调用接口的时候&#xff0c;把token放到header或 请求参数中&#xff0c;服务端就…

ROS2机器人编程简述humble-第二章-Publishing and Subscribing .3.2

ROS2机器人编程简述humble-第二章-Controlling the Iterative Execution .3.1官方示例pub和sub使用std_msgs/msg/string.hpp&#xff0c;数据类型std_msgs::msg::String。这本书中使用是std_msgs/msg/int32.hpp&#xff0c;数据类型&#xff1a;std_msgs::msg::Int32。对于机器…

Servlet —— Servlet API

JavaEE传送门JavaEE Servlet —— Tomcat, 初学 Servlet 程序 Servlet —— Smart Tomcat,以及一些访问出错可能的原因 目录Servlet APIHttpServletHttpServletRequest获取 GET 请求中的参数获取 POST 请求的参数HttpServletResponseServlet API 虽然 Servlet 提供的类和方法…

【UE4 第一人称射击游戏】53-制作烟雾弹

上一篇&#xff1a;【UE4 第一人称射击游戏】52-手榴弹攻击丧尸本篇效果&#xff1a;按F键掷出烟雾弹&#xff0c;伴随产生音效和烟雾效果本篇步骤&#xff1a;拷贝一份“GrenadeActor”命名为“SmokeGrenadeActor”双击打开“SmokeGrenadeActor”&#xff0c;删除如下节点改变…

尚医通-医院详情功能(二十七)

目录&#xff1a; &#xff08;1&#xff09;前台用户系统-医院详请-情接口开发 &#xff08;2&#xff09;前台用户系统-技术点-nuxt路由 &#xff08;3&#xff09;前台用户系统-医院详情-前端整合 &#xff08;1&#xff09;前台用户系统-医院详-情接口开发 现在做在页面…

13 Java异常(异常过程解析、throw、throws、try-catch关键字)

文章目录13 异常13.1 异常概念13.2 异常的产生过程解析13.3 异常的阐释和处理13.3.1 throw关键字13.3.2 throws关键字13.3.3 try-catch代码块13.3.4 try-catch-finally代码块Java中final、finally和finalize相似点和区别13.3.5 自定义异常13 异常 13.1 异常概念 异常&#xff…