Qml学习——基本控件

news/2024/4/25 15:13:43/文章来源:https://blog.csdn.net/weixin_45001971/article/details/128953774

最近在学习Qml,但对Qml的各种用法都不太熟悉,总是会搞忘,所以写几篇文章对学习过程中的遇到的东西做一个记录。
学习参考视频:https://www.bilibili.com/video/BV1Ay4y1W7xd?p=1&vd_source=0b527ff208c63f0b1150450fd7023fd8

目录

  • 1 常用控件
    • 1.1 Text(显示普通文本和富文本)
    • 1.2 Button(按钮控件)
    • 1.3 RadioButton(单选按钮)
    • 1.4 CheckBox(多选按钮)
    • 1.5 Calendar(日历)
    • 1.6 ComboBox(下拉选项)
    • 1.7 Flickable(滑动窗口)
      • 1.7.1 添加滑动条
    • 1.8 ListView(列表)
    • 1.9 Timer(定时器)
    • 1.10 SwipeView(滑动窗口)


1 常用控件

1.1 Text(显示普通文本和富文本)

显示普通文本。

Window {visible: truewidth: 320height: 240title: qsTr("Hello World")Text {text: "Hello World!"font.family: "Helvetica"font.pointSize: 24color: "red"}
}

在这里插入图片描述
显示富文本。

Window {visible: truewidth: 320height: 240title: qsTr("Hello World")Text {text: "<b>Hello</b> <i>World!</i>"}
}

在这里插入图片描述

1.2 Button(按钮控件)

需要导入QtQuick.Controls 2.xx,如import QtQuick.Controls 2.12。

Window {visible: truewidth: 200height: 120title: qsTr("Hello World")Button {text: "Ok"onPressed: {		//下压console.log("pressed " + text)}onReleased: {		//释放console.log("released " + text)}onClicked: {		//单击,触发一次pressed和一次releasedconsole.log("click " + text)}onDoubleClicked: {	//双击console.log("doubleClick " + text)}onPressAndHold: {	//长按,下压后不松手一段时间后触发console.log("pressAndHold " + text)}onCanceled: {		//下压后,在释放之前失去焦点console.log("cancel " + text)}}
}

onCanceled的触发方法:按住按钮不放,然后键盘按Alt+Tab,让它失去焦点。

1.3 RadioButton(单选按钮)

import QtQuick 2.12
import QtQuick.Window 2.12
import QtQuick.Controls 2.12
import QtQuick.Layouts 1.12Window {visible: true; width: 200; height: 200ColumnLayout {RadioButton {checked: truetext: "r1"}RadioButton {text: "r2"}RadioButton {text: "r3"}}
}

在这里插入图片描述

1.4 CheckBox(多选按钮)

import QtQuick 2.12
import QtQuick.Window 2.12
import QtQuick.Controls 2.12
import QtQuick.Layouts 1.12Window {visible: true; width: 200; height: 200ColumnLayout {CheckBox {id: c1checked: truetext: "c1"}CheckBox {id: c2checked: falsetext: "c2"}CheckBox {id: c3checked: truetext: "c3"}}Component.onCompleted: {console.log(c1.checked)console.log(c2.checked)console.log(c3.checked)}
}

在这里插入图片描述

1.5 Calendar(日历)

import QtQuick 2.12
import QtQuick.Window 2.12
import QtQuick.Controls 1.4Window {visible: true; width: 320; height: 320Calendar {onSelectedDateChanged: {let date = Qt.formatDateTime(selectedDate, "yyyy-MM-dd");console.log(date)}}
}

在这里插入图片描述

1.6 ComboBox(下拉选项)

import QtQuick 2.12
import QtQuick.Window 2.12
import QtQuick.Controls 2.12Window {visible: true; width: 200; height: 200ComboBox {model: ["1111", "2222", "3333"]onCurrentIndexChanged: {console.log(currentIndex)}}
}

在这里插入图片描述

1.7 Flickable(滑动窗口)

import QtQuick 2.12
import QtQuick.Window 2.12
import QtQuick.Controls 2.12Window {visible: true; width: 400; height: 300Flickable {anchors.fill: parentcontentWidth: image.widthcontentHeight: image.heightImage {id: imagesource: './111.jpeg'}}
}

请添加图片描述

1.7.1 添加滑动条

import QtQuick 2.12
import QtQuick.Window 2.12
import QtQuick.Controls 2.12Window {visible: true; width: 400; height: 300Flickable {anchors.fill: parentcontentWidth: image.widthcontentHeight: image.heightImage {id: imagesource: './111.jpeg'}}
}

请添加图片描述

1.8 ListView(列表)

import QtQuick 2.12
import QtQuick.Window 2.12
import QtQuick.Controls 2.12Window {visible: true; width: 400; height: 300Column {ListView {id: listwidth: 100height: 200model: [{ name: '宝马', price: '10'},{ name: '奔驰', price: '50'},{ name: '大众', price: '100'}]delegate: ItemDelegate {width: list.widthtext: modelData.name + ": " + modelData.price + (list.currentIndex === index ? ' √' : '')background: Rectangle {color: getColor()function getColor() {return Qt.rgba(Math.random(), Math.random(), Math.random())}}onClicked: {list.currentIndex = indexconsole.log(JSON.stringify(modelData))}}ScrollBar.vertical: ScrollBar {}}Button {onClicked: {let model = list.modelmodel.push({name: "123", price: "123"})list.model = model}}}
}

1.9 Timer(定时器)

import QtQuick 2.12
import QtQuick.Window 2.12
import QtQuick.Controls 2.12Window {visible: true; width: 200; height: 120Label {Timer {interval: 1000repeat: truerunning: truetriggeredOnStart: trueonTriggered: {parent.text = Qt.formatDateTime(new Date(), 'yyyy-MM-dd hh:mm:ss')}}}
}

在这里插入图片描述

1.10 SwipeView(滑动窗口)

import QtQuick 2.12
import QtQuick.Window 2.12
import QtQuick.Controls 2.12Window {visible: true; width: 200; height: 120SwipeView {id: viewanchors.fill: parentRepeater {model: 3Rectangle {color: view.currentIndex == 0 ? 'red' : view.currentIndex == 1 ? 'yellow' : 'white'Text {anchors.centerIn: parenttext: 'text' + view.currentIndex}}}}PageIndicator {anchors.bottom: view.bottomcount: view.countcurrentIndex: view.currentIndex}
}

请添加图片描述

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

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

相关文章

蓝桥杯刷题023——机器人塔(DFS)

2016国赛 题目描述 X 星球的机器人表演拉拉队有两种服装&#xff0c;A 和 B。 他们这次表演的是搭机器人塔。 类似&#xff1a; A B B A B A A A B B B B B A B A B A B B A 队内的组塔规则是&#xff1a; A 只能站在 AA 或 BB 的肩上。 B 只能站在 AB 或 BA 的肩上。 你的任务…

网络通信协议是什么?

网络通信基本模式 常见的通信模式有如下2种形式&#xff1a;Client-Server(CS) 、 Browser/Server(BS) 实现网络编程关键的三要素 IP地址&#xff1a;设备在网络中的地址&#xff0c;是唯一的标识。 端口&#xff1a;应用程序在设备中唯一的标识。 协议: 数据在网络中传输的…

Python-第二天 Python基础语法

Python-第二天 Python基础语法一、 字面量1.1 常用的值类型1.1.1 字符串&#xff08;string&#xff09;二、注释2.1 注释的作用2.2 注释的分类三、变量3.1 什么是变量3.2 变量的特征四、数据类型4.1 数据类型4.2 type()语句4.3 type()语句的使用方式4.4 变量有类型吗&#xff…

企业数字化转型的产品设计思路

数字化转型的核心是全面重塑企业的管理模式和经营模式&#xff0c;是迈向数字经济时代的方式。一、到底什么是数字化转型&#xff1f;数字化转型并不神秘。数字化转型是一种经营方式、一种经营理念&#xff0c;是将企业相关的人、物料、设备、资金等要素进行系统运转&#xff0…

中国网站安全形式风险报告

声明 本文是学习2017中国网站安全形势分析报告. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 网站漏洞检测分析 网站漏洞的整体形势可以从两个角度分析&#xff1a;一是网站安全检测的自动扫描结果统计&#xff0c;二是网站被报告漏洞情况的统计。…

浅谈监控易运维系统在金融信创国产化中的使用

自2019年&#xff0c;国家明确信创产业将成为拉动经济发展的重要途径和崭新动能以来&#xff0c;全行业进入一个高速发展新阶段。此前倡导的“28”安全可控体系&#xff0c;其中在8大基础行业中,金融行业信创产品推广成为重中之重。金融行业信创&#xff0c;是为解决行业本质安…

全息存储:名气大于实力的存储技术?

全息存储和玻璃存储、DNA存储并称当前三大数据存储前沿技术&#xff0c;笔者前面已经写过玻璃存储和DNA存储的文章&#xff08;参见《玻璃存储&#xff0c;数字时代的罗塞塔石碑》、《DNA存储&#xff1a;数据存储的终极解决之道》&#xff09;&#xff0c;自然也不能缺了全息存…

ASO优化之如何进行榜单优化

ASO优化有&#xff1a;搜索优化&#xff0c;榜单优化&#xff0c;转化率优化。今天我们主要来讲讲苹果应用商店的榜单优化。 榜单优化的核心内容就是提高应用商城的排名&#xff0c;把我们的APP提升到显眼的位置&#xff0c;增加曝光率&#xff0c;提升APP的下载量。 那我们具…

PPOJ刷题-3

PPOJ刷题-3 1265: 最近公共祖先 题目描述 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 最近公共祖先的定义为&#xff1a;“对于有根树 T 的两个结点 p、q&#xff0c;最近公共祖先表示为一个结点 x&#xff0c;满足 x 是 p、q 的祖先且 x 的深度尽可能大&…

4N25光耦合器:简单的应用电路

4N25光耦合器&#xff1a;简单的应用电路 介绍 4N25是一款6引脚光电晶体管耦合器。本文根据其传动特性介绍了 4N25 的非线性和线性应用。 4N25概述 光电耦合器4N25的内部电路结构如图1所示。 图1.4N25内部电路结构 该芯片为双列直插式器件&#xff0c;外引线为6根&#xff0…

三表相连 mapjoin

三表相连 mapjoin要求输出的样式三张表score.csvstudent.csvsubject.csv创建三个类StudentScgetset方法实现类MapJoinDriver用mapjoin不需要reduceMapJoinMapper运行结果要求 输出的样式 三张表 score.csv student.csv subject.csv 创建三个类 StudentSc getset方法 插入gets…

【Java 面试合集】描述下Objec类中常用的方法(未完待续中...)

描述下Objec类中常用的方法 1. 概述 首先我们要知道Object 类是所有的对象的基类&#xff0c;也就是所有的方法都是可以被重写的。 那么到底哪些方法是我们常用的方法呢&#xff1f;&#xff1f;&#xff1f; cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringw…

网络---TCP协议(一)三次握手、四次挥手

目录 一、面向连接 三次握手&#xff1a; 1、双方发送的数据包名称 2.双方连接状态&#xff1a; 问题&#xff1a;为什么tcp需要三次握手才能建立连接&#xff0c;两次不行吗&#xff1f; 3、包序管理(重要&#xff01;&#xff01;&#xff01;) 序号与确认序号 通过抓包…

The last packet sent successfully to the server was 0 milliseconds ago. 解决办法

mybatis-generator-maven-plugin插件The last packet sent successfully to the server was 0 milliseconds agoYou must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to…

【✨十五天搞定电工基础】基本放大电路

本章要求1. 理解放大电路的放大作用和共发射极放大电路的性能特点&#xff1b; 2. 掌握静态工作点的估算方法和放大电路的微变等效电路分析法&#xff1b; 3. 了解放大电路输入、输出电阻和电压放大倍数的计算方法&#xff0c;了解放大电路的频率特性、 互补功率放大…

全国青少年编程等级考试scratch四级真题2022年9月(含题库答题软件账号)

青少年编程等级考试scratch真题答题考试系统请点击电子学会-全国青少年编程等级考试真题Scratch一级&#xff08;2019年3月&#xff09;在线答题_程序猿下山的博客-CSDN博客_小航答题助手1、运行下列程序&#xff0c;说法正确的是&#xff1f;&#xff08; &#xff09;A.列表…

计算机组成原理第七章笔记记录

仅仅作为笔记记录,B站视频链接&#xff0c;若有错误请指出&#xff0c;谢谢 基本概念 演变过程 I/O系统基本组成 I/O软件 包括驱动程序、用户程序、管理程序、升级补丁等 下面的两种方式是用来实现CPU和I/O设备的信息交换的 I/O指令 CPU指令的一部分,由操作码,命令码,设备…

【电商】订单系统--售后的简易流程与系统关系

用户进行了订单签收并不意味着终结&#xff0c;这只是一个新的开始&#xff0c;因为商品送达后可能会由于运输过程包装或商品有破损&#xff0c;商品本质量并非商品详情中所描述的那样等各种原因使用户进行退货或换货&#xff1b;还有一种场景是用户签收后发现有的商品漏发、少…

网络通讯的理解

tcp/ip 协议族ip在真实环境中&#xff0c;会把主机号再分成一个子网号和一个主机号。这样的主机号才是最终容纳的主机数量。所以需要使用子网掩码&#xff08;32位&#xff09;来分子网号和主机号。其中值为1的比特是网络号和子网号&#xff0c;值为0的是比特是主机号。可以在w…

chatGPT 官网使用详细教程 (亲测可行)

文章目录1. chatGPT 介绍2. 进入官网3. 开始使用1. chatGPT 介绍 chatGPT 是一款由 OpenAI 开发的聊天机器人模型&#xff0c;它能够模拟人类的语言行为&#xff0c;与用户进行自然的交互。它的名称来源于它所使用的技术—— GPT-3架构&#xff0c;即生成式语言模型的第3代。 …