当前位置: 首页 > news >正文

Qml之基本控件

一.Qml常用控件

1.Text(显示普通文本和富文本)

1.1显示普通文本:

Window {

    visible: true

    width: 320

    height: 240

    title: qsTr("Hello World")

    Text {

          text: "Hello World!"

          font.family: "Helvetica"

          font.pointSize: 24

          color: "red"

    }

}

1.2显示富文本。

Window {

    visible: true

    width: 320

    height: 240

    title: qsTr("Hello World")

    Text {

        text: "<b>Hello</b> <i>World!</i>"

    }

}

2.Button(按钮控件)

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

Window {

    visible: true

    width: 200

    height: 120

    title: qsTr("Hello World")

    Button {

        text: "Ok"

        onPressed: { //下压

            console.log("pressed " + text)

        }

        onReleased: { //释放

            console.log("released " + text)

        }

        onClicked: { //单击,触发一次pressed和一次released

            console.log("click " + text)

        }

        onDoubleClicked: { //双击

            console.log("doubleClick " + text)

        }

        onPressAndHold: { //长按,下压后不松手一段时间后触发

            console.log("pressAndHold " + text)

        }

        onCanceled: { //下压后,在释放之前失去焦点

            console.log("cancel " + text)

        }

    }

}

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

3.RadioButton(单选按钮)

Window {

    visible: true; width: 200; height: 200

    ColumnLayout {

        RadioButton {

            checked: true

            text: "r1"

        }

        RadioButton {

            text: "r2"

        }

        RadioButton {

            text: "r3"

        }

    }

}

4.CheckBox(多选按钮)

import QtQuick 2.12

import QtQuick.Window 2.12

import QtQuick.Controls 2.12

import QtQuick.Layouts 1.12

Window {

    visible: true; width: 200; height: 200

    ColumnLayout {

        CheckBox {

            id: c1

            checked: true

            text: "c1"

        }

        CheckBox {

            id: c2

            checked: false

            text: "c2"

        }

        CheckBox {

            id: c3

            checked: true

            text: "c3"

        }

    }

    Component.onCompleted: {

        console.log(c1.checked)

        console.log(c2.checked)

        console.log(c3.checked)

    }

}

5.ComboBox(下拉选项)

import QtQuick 2.12

import QtQuick.Window 2.12

import QtQuick.Controls 2.12

Window {

    visible: true; width: 200; height: 200

    ComboBox {

        model: ["1111", "2222", "3333"]

        onCurrentIndexChanged: {

            console.log(currentIndex)

        }

    }

}

6.ListView(列表)

import QtQuick 2.12

import QtQuick.Window 2.12

import QtQuick.Controls 2.12

Window {

    visible: true; width: 400; height: 300

    Column {

        ListView {

            id: list

            width: 100

            height: 200

            model: [

                { name: '宝马', price: '10'},

                { name: '奔驰', price: '50'},

                { name: '大众', price: '100'}

            ]

            delegate: ItemDelegate {

                width: list.width

                text: 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 = index

                    console.log(JSON.stringify(modelData))

                }

            }

            ScrollBar.vertical: ScrollBar {}

        }

        Button {

            onClicked: {

                let model = list.model

                model.push({name: "123", price: "123"})

                list.model = model

            }

        }

    }

}

7.Timer(定时器)

import QtQuick 2.12

import QtQuick.Window 2.12

import QtQuick.Controls 2.12

Window {

    visible: true; width: 200; height: 120

    Label {

        Timer {

            interval: 1000

            repeat: true

            running: true

            triggeredOnStart: true

            onTriggered: {

                parent.text = Qt.formatDateTime(new Date(), 'yyyy-MM-dd hh:mm:ss')

            }

        }

    }

}

8.SwipeView(滑动窗口)

  说明:可以见手指滑动变换窗口

import QtQuick 2.12

import QtQuick.Window 2.12

import QtQuick.Controls 2.12

Window {

    visible: true; width: 200; height: 120

    SwipeView {

        id: view

        anchors.fill: parent

        Repeater {

            model: 3

            Rectangle {

                color: view.currentIndex == 0 ? 'red' : view.currentIndex == 1 ? 'yellow' : 'white'

                Text {

                    anchors.centerIn: parent

                    text: 'text' + view.currentIndex

                }

            }

        }

    }

    PageIndicator {

        anchors.bottom: view.bottom

        count: view.count

        currentIndex: view.currentIndex

    }

}

9.输入框

 TextInput{

                id:intpu_Z

                anchors.left: parent.left

                anchors.leftMargin: 5

                anchors.right: parent.right

                anchors.rightMargin: 5

                anchors.verticalCenter: parent.verticalCenter

                color: "white"

                font{

                    pointSize: maps_Root.fontSize

                    bold: true

                }

                clip: true

            }

10.Item

   Item是基本的QML类型,所有可视类型都是Item的子类。  

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

11.Rectangle

   在 QML 中,Rectangle 是一个常用的基础图形元素,用于绘制矩形形状。它继承自 Item 并提供了额外的属性来定义矩形的尺寸、颜色、边框等。

以下是一些 Rectangle 元素的关键属性和用法示例:

关键属性

width 和 height:定义矩形的宽度和高度。

color:定义矩形的填充颜色。

border.color:定义矩形边框的颜色。

border.width:定义矩形边框的宽度。

radius:定义矩形角的圆度,用于创建圆角矩形。

gradient:定义矩形的渐变填充,而不是纯色填充。

用法示例

以下是一个简单的 QML 示例,展示了如何使用 Rectangle 元素:

import QtQuick 2.15

Rectangle {

    width: 200

    height: 100

    color: "blue"

    border.color: "black"

    border.width: 4

    radius: 10

    // 在矩形中添加文本

    Text {

        text: "Hello, Rectangle!"

        color: "white"

        anchors.centerIn: parent // 使文本在矩形中居中

    }

}    

12.Dialog

import QtQuick 2.10

import QtQuick.Window 2.10

import QtQuick.Controls 2.3

ApplicationWindow{

    visible: true;

    width: 1280;

    height: 720;

    Dialog {

        id: dialog

        x:(parent.width-width)/2

        y:(parent.height-height)/2

        implicitWidth: 500;

        implicitHeight: 300;

        title: "Title"

        modal: true;

        standardButtons: Dialog.Ok | Dialog.Cancel

        onAccepted: console.log("Ok clicked")

        onRejected: console.log("Cancel clicked")

    }

    Button{

        text: "open";

        onClicked: {

            dialog.open();

        }

    }

}

相关文章:

Qml之基本控件

一.Qml常用控件 1.Text(显示普通文本和富文本) 1.1显示普通文本&#xff1a; Window { visible: true width: 320 height: 240 title: qsTr("Hello World") Text { text: "Hello World!" font.family: "Helvetica" font.pointSize: 24 color:…...

【Java从入门到放弃 之 Stream API】

Java Stream API Stream API行为参数化传递代码Lambda表达式Lambda 表达式的语法方法引用 Lambda 表达式的实际应用集合操作并发编程 Lambda 表达式的注意事项总结 Stream API Java8提供了一个全新的API - Stream。引入这个Stream的主要目的&#xff0c;一个是可以支持更好的并…...

Ruby On Rails 笔记1——Rails 入门

突然想跟着官方文档把Ruby On Rails过一遍&#xff0c;把一些有用的记下来就可以一直看了&#xff0c;do它! https://guides.rubyonrails.org/v7.2/ 注&#xff1a;官网是英文文档&#xff0c;我自己翻译了一下&#xff0c;不确保完全准确&#xff0c;只供自己学习开发使用。 …...

高效开发 Python Web 应用:FastAPI 数据验证与响应体设计

高效开发 Python Web 应用&#xff1a;FastAPI 数据验证与响应体设计 目录 &#x1f9d1;‍&#x1f4bb; FastAPI 的数据验证系统与 Pydantic 模型&#x1f4e6; 响应体与模型&#xff1a;定义响应数据的最佳实践&#x1f504; 响应模型与查询参数的结合&#xff1a;增强灵活…...

基于“开源 2+1 链动 O2O 商城小程序”的门店拉新策略与流程设计

摘要&#xff1a;在数字化商业浪潮席卷之下&#xff0c;实体门店面临着激烈的市场竞争&#xff0c;如何高效拉新成为关乎门店生存与发展的关键问题。本文聚焦于“开源 21 链动 O2O 商城小程序”&#xff0c;深入探讨结合多种手段的门店拉新策略及详细流程设计。通过剖析到店扫码…...

33.5 remote实战项目之设计prometheus数据源的结构

本节重点介绍 : 项目要求 通过remote read读取prometheus中的数据通过remote write向prometheus中写入数据 准备工作 新建项目 prome_remote_read_write设计prometheus 数据源的结构初始化 项目要求 通过remote read读取prometheus中的数据通过remote write向prometheus中写…...

微服务springboot详细解析(一)

目录 1.Spring概述 2.什么是SpringBoot&#xff1f; 3.第一个SpringBoot程序 4.配置参数优先级 5.springboot自动装配原理 6.SpringBootApplication&SpringApplication.run 7.ConfigurationProperties(prefix "") 8.Validated数据校验 29、聊聊该如何写一…...

深入探讨Go语言中的双向链表

简介 双向链表是链表家族中的一种高级结构&#xff0c;每个节点不仅指向下一个节点&#xff0c;还指向上一个节点。今天&#xff0c;我们将学习如何在Go语言中实现和操作这种灵活的数据结构。 双向链表的优缺点 优点&#xff1a; 可以从任一方向遍历链表&#xff0c;灵活性高…...

Fastapi + vue3 自动化测试平台---移动端App自动化篇

概述 好久写文章了&#xff0c;专注于新框架&#xff0c;新UI界面的实践&#xff0c;废话不多说&#xff0c;开搞 技术架构 后端&#xff1a; Fastapi Airtest multiprocessing 前端&#xff1a; 基于 Vue3、Vite、TypeScript、Pinia、Pinia持久化插件、Unocss 和 Elemen…...

ElasticSearch easy-es 聚合函数 group by 混合写法求Top N 词云 分词

1.将用户访问记录表数据同步到ES&#xff0c;并且分词&#xff0c;获取用户访问最多前十条词语。 Elasticsearch、Easy-es 快速入门 SearchAfterPage分页 若依前后端分离 Ruoyi-Vue SpringBoot 使用结巴分词器 <!-- 分词器--><dependency><groupId>com.hua…...

在 ASP.NET C# Web API 中实现 Serilog 以增强请求和响应的日志记录

介绍 日志记录是任何 Web 应用程序的关键方面。它有助于调试、性能监控和了解用户交互。在 ASP.NET C# 中&#xff0c;集成 Serilog 作为记录请求和响应&#xff08;包括传入和传出的数据&#xff09;的中间件可以显著提高 Web API 的可观察性和故障排除能力。 在过去的几周里&…...

2024年顶级小型语言模型前15名

本文&#xff0c;我们将深入了解2024年备受瞩目的十五款小型语言模型&#xff08;SLMs&#xff09;&#xff0c;它们分别是Llama 3.1 8B、Gemma2、Qwen 2、Mistral Nemo、Phi-3.5等。这些SLMs以其精巧的体积和高效率著称&#xff0c;它们不需要依赖庞大的服务器资源&#xff0c…...

精通 Python 网络安全(一)

前言 最近&#xff0c;Python 开始受到越来越多的关注&#xff0c;最新的 Python 更新添加了许多可用于执行关键任务的包。我们的主要目标是帮助您利用 Python 包来检测和利用漏洞&#xff0c;并解决网络挑战。 本书将首先带您了解与网络和安全相关的 Python 脚本和库。然后&…...

【python自动化二】pytest集成allure生成测试报告

pytest本身不会直接生成测试报告&#xff0c;而allure是一种生成测试报告的公共插件&#xff0c;可与多种测试框架配合生成测试报告&#xff0c;本文介绍下如何集成allure生成测试报告。 1.allure安装 1.安装allure-pytest 先安装allure的pytest插件&#xff0c;用于在pytes…...

网络版本的通讯录青春版(protobuf)

环境搭建 Protobuf 还常⽤于通讯协议、服务端数据交换场景。 因为我们主要目的只是为了学习protobuf&#xff0c;因此对于客户端&#xff0c;原本应该具备&#xff1a; 新增⼀个联系⼈ ◦ 删除⼀个联系⼈ ◦ 查询通讯录列表 ◦ 查询⼀个联系⼈的详细信息 这样四个功能。 …...

开源模型应用落地-安全合规篇-用户输入价值观判断(三)

一、前言 在深度合规功能中,对用户输入内容的价值观判断具有重要意义。这一功能不仅仅是对信息合法性和合规性的简单审核,更是对信息背后隐含的伦理道德和社会责任的深刻洞察。通过对价值观的判断,系统能够识别可能引发不当影响或冲突的内容,从而为用户提供更安全、更和谐的…...

神经网络入门实战:(十四)pytorch 官网内置的 CIFAR10 数据集,及其网络模型

(一) pytorch 官网内置的网络模型 图像处理&#xff1a; Models and pre-trained weights — Torchvision 0.20 documentation (二) CIFAR10数据集的分类网络模型&#xff08;仅前向传播&#xff09;&#xff1a; 下方的网络模型图片有误&#xff0c;已做修改&#xff0c;具…...

【Rust在WASM中实现pdf文件的生成】

Rust在WASM中实现pdf文件的生成 前言概念和依赖问题描述分步实现pdf转Blob生成URL两种方式利用localstorage传递参数处理图片Vec<u8>到pdf格式的Vec<u8>使用rust创建iframe显示pdf的Blob最后 前言 实现了一个通用的前端jpg转pdf的wasm,因为动态响应框架无法直接打…...

在MySQL中执行sum case when报错:SUM does not exist

1. 报错 在pgsql中能正常运行的一段SQL在MySQL中运行的时候报错了&#xff1a; SELECT DATE( hr.handle_time ) AS statsDate,SUM ( CASE WHEN hma.app_type IN ( 2, 5 ) THEN ch_money ELSE 0 END ) AS aliPayAmt,SUM ( CASE WHEN hma.app_type IN ( 1, 4 ) THEN ch_money EL…...

【openssl】相关指令

熟悉下相关概念 x509&#xff1a;证书标准pem和der&#xff1a;两种&#xff08;包括公私钥、证书签名请求、证书等内容的&#xff09;的格式&#xff0c;前者是文本形式&#xff0c;linux常用&#xff0c;后者是二进制形式&#xff0c;windows常用&#xff0c;仅仅是格式&…...

实例分割详解

实例分割详解 引言 实例分割是计算机视觉领域的一项复杂任务&#xff0c;它要求模型能够识别图像中不同类别的对象&#xff0c;并对每个单独的对象进行像素级别的分类。与语义分割不同的是&#xff0c;实例分割不仅要区分不同的类别&#xff0c;还要识别同一类别中的不同个体…...

D87【python 接口自动化学习】- pytest基础用法

day87 pytest运行参数 -m -k 学习日期&#xff1a;20241203 学习目标&#xff1a;pytest基础用法 -- pytest运行参数-m -k 学习笔记&#xff1a; 常用运行参数 pytest运行参数-m -k pytest -m 执行特定的测试用例&#xff0c;markers最好使用英文 [pytest] testpaths./te…...

浅谈MySQL路由

华子目录 mysql-router介绍下载mysql-router安装mysql-router实验 mysql-router介绍 mysql-router是一个对应用程序透明的InnoDB Cluster连接路由服务&#xff0c;提供负载均衡、应用连接故障转移和客户端路由利用路由器的连接路由特性&#xff0c;用户可以编写应用程序来连接到…...

matlab中disp,fprintf,sprintf,display,dlmwrite输出函数之间的区别

下面是他们之间的区别&#xff1a; disp函数与fprintf函数的区别 输出格式的灵活性 disp函数&#xff1a;输出格式相对固定。它会自动将变量以一种比较直接的方式显示出来。对于数组&#xff0c;会按照行列形式展示&#xff1b;对于字符串&#xff0c;直接原样输出并换行。例如…...

30.100ASK_T113-PRO 用QT编写视频播放器(一)

1.再buildroot中添加视频解码库 X264, 执行 make menuconfig Target packages -->Libraries --> Multimedia --> X264 CLI 还需要添加 FFmpeg 2. 保存,重新编译 make all 3.将镜像下载开发板...

Linux-GPIO应用编程

本章介绍应用层如何控制 GPIO&#xff0c;譬如控制 GPIO 输出高电平、或输出低电平。 只要是用到GPIO的外设&#xff0c;都有可能用得到这些操作方法。 照理说&#xff0c;GPIO的操作应该是由驱动层去做的&#xff0c;使用寄存器操作或者GPIO子系统之类的框架。 但是&#xff0…...

opencvocr识别手机摄像头拍摄的指定区域文字,文字符合规则就语音报警

安装python&#xff0c;pycharm&#xff0c;自行安装。 Python下安装OpenCv 2.1 打开cmd,先安装opencv-python pip install opencv-python --user -i https://pypi.tuna.tsinghua.edu.cn/simple2.2 再安装opencv-contrib-python pip install opencv-contrib-python --user …...

微服务即时通讯系统(5)用户管理子服务,网关子服务

用户管理子服务&#xff08;user文件&#xff09; 用户管理子服务也是这个项目中的一个业务最多的子服务&#xff0c;接口多&#xff0c;但是主要涉及的数据表只有user表&#xff0c;Redis的键值对和ES的一个搜索引擎&#xff0c;主要功能是对用户的个人信息进行修改管理&#…...

postgreSQL安装后启动有The application server could not be contacted问题

不得不说pgsql是真的麻烦,找问题找了几个小时才解决.直接步入主题吧 首先问题如下 安装后,双击启动就出现上述问题 首先删除路径为 c:\Users\your_name\AppData\Roaming\pgAdmin 之内的所有文件和文件夹, 如果找不到AppData,就把这个点开 接着找到你安装pgsql的路径,我的是D…...

架构05-架构安全性

零、文章目录 架构05-架构安全性 1、软件架构安全的重要性 **系统安全&#xff1a;**不仅包括防御黑客攻击&#xff0c;还包括安全备份与恢复、安全审计、防治病毒等。**关注重点&#xff1a;**认证、授权、凭证、保密、传输安全、验证。 2、认证&#xff08;Authenticatio…...