QML与widget

news2024/11/24 8:04:25

杂谈

  • QML-各类建材(水泥、沙石、钢筋等各种材料),可以做出各种炫酷建筑
  • wiget-板房,可靠、功能性强。

QML(Qt Meta Language or Qt Modeling Language):

  • QML 是一种基于 JavaScript 的声明式语言,专注于 UI 和交互设计。它非常适合做现代消费类产品,比如手机 App、智能设备等,因为它的设计灵活,具有高度的定制化能力。
  • QML 的组件(比如按钮)可以通过简单的声明式语法构建和扩展。例如,按钮可以定义为文本+触摸区域+方块,同时你可以轻松修改其样式、动画、透明度等特性。因此,QML 非常适合需要定制和灵活布局的 UI 设计场景。
  • QML 的设计使得开发者可以以类似树结构的方式组织操作流程,这对于需要简洁、直观交互流程的消费类应用非常有效。

QWidgets:

  • QWidget 是 Qt 的另一套 UI 系统,适合用于更复杂的桌面应用程序,特别是生产力工具。这些工具往往需要提供大量的功能和工具,而用户则根据自己的需求去组合使用。
  • Widgets 更加注重稳定性标准化的功能,许多控件的外观和行为是预定义的,虽然可以通过一定的技巧去修改它们的外观,但相对于 QML,灵活性稍差。因此,QWidgets 更适合那些对 UI 灵活性要求不高,但对功能完整性、复杂性有较高需求的场景,比如文本排版软件、设计工具等。

总的来说:

  • 如果你的目标是消费类产品,QML 因为其灵活性和动态交互性会是更好的选择。
  • 如果是为用户提供大量工具让其自由组合使用的生产力工具,QWidgets 的稳定性和功能性则更合适。
    所以你的理解是非常清晰的,QML 更倾向于灵活、可定制的场景,而 Widgets 则更适合稳定、功能集成的场景。

QML 按钮=文本+触摸区域+方块

每个元素都发挥各自作用,分工明确

    Rectangle {
        id: lbtn
        anchors.left: parent.left
        anchors.leftMargin: 10 // 设置左侧间隔为10像素
        anchors.verticalCenter: parent.verticalCenter // 垂直居中
        width: 50
        height: 300
        opacity: 0.7 // 透明度设置为30%
        radius: 6 // 圆角弧度设置为6
        Text {
            anchors.verticalCenter: parent.verticalCenter
            anchors.horizontalCenter: parent.horizontalCenter
            text: qsTr("<")
            font.pointSize: 15
        }
        MouseArea {
            width: parent.width
            height: parent.height
            onClicked: {
                // 更新当前索引到上一张图片,并确保索引为正数
                currentIndex = (currentIndex - 1 + imageList.length) % imageList.length
                // 刷新图片源
                img.source = imageList[currentIndex]
            }
        }
    }

widget

集成度高,定制性低。
在这里插入图片描述

在 QML 中,Button 控件没有 radius 属性。要为 Button 设置圆角,你可以使用 Rectangle 或其他容器控件作为 Button 的背景,并设置圆角属性。下面是一个示例,演示了如何通过 Rectangle 来实现圆角效果:

import QtQuick 2.0
import QtQuick.Controls 2.0

Rectangle {
    width: 200
    height: 300
    color: "lightgray"

    Button {
        width: 50
        height: 300
        opacity: 0.3 // 透明度设置为30%

        // 使用Rectangle作为按钮背景
        Rectangle {
            anchors.fill: parent
            color: "blue" // 按钮的背景颜色
            radius: 6 // 圆角弧度设置为6

            Text {
                anchors.centerIn: parent
                color: "white"
                text: "Click Me"
            }
        }

        // 处理按钮点击事件
        onClicked: {
            console.log("Button clicked")
        }
    }
}

在这个示例中:

Button 控件的 width、height 和 opacity 属性被设置。
在 Button 内部,使用了一个 Rectangle 控件来作为按钮的背景,并设置了 radius 属性来实现圆角效果。
Text 控件用于显示按钮文本,并且被居中在 Rectangle 内部。
这种方式可以让你在 Button 控件中实现圆角效果,并且可以设置其他的样式属性。

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

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

相关文章

‌汽车一键式启动系统‌包含哪些功能

‌汽车一键式启动系统‌是一种智能化的汽车启动系统&#xff0c;它通过一个按钮来启动和熄灭发动机&#xff0c;取代了传统的钥匙启动方式。这个系统不仅简化了启动和熄火的步骤&#xff0c;还提供了多种智能化的功能&#xff0c;如自动开锁、自动关锁、自动关窗、自动防盗等。…

HarmonyOS开发之(下拉刷新,上拉加载)控件pulltorefresh组件的使用

效果图&#xff1a; 一&#xff1a;下载安装&#xff08;地址&#xff1a;OpenHarmony-SIG/PullToRefresh&#xff09; ohpm install ohos/pulltorefresh 二&#xff1a;使用lazyForEarch的数据作为数据源 export class BasicDataSource implements IDataSource{private l…

一种简易CAN数据分析器的实现(一)【工程创建+CAN波特率计算工具】

程序实现详见《一种简易CAN数据分析器的实现&#xff08;二&#xff09;【程序实现】》 微信公众号关注&#xff1a;掌芯元器&#xff0c;免费为大家提供嵌入式相关的技术咨询&#xff01;&#xff01;&#xff01; 目录 一、功能需求及实现 1、功能设计及实现 2、软硬件需求…

视频怎么转换成mp3格式?分享5种便捷的转换方法

在日常生活中&#xff0c;我们经常会遇到需要将视频文件中的音频提取出来&#xff0c;转换成MP3格式的情况&#xff0c;以便在手机、MP3播放器或其他设备上播放。今天&#xff0c;我将为大家介绍5种视频转MP3的方法&#xff0c;非常简单便捷&#xff0c;一起来学习下吧。 方法一…

oelove奥壹婚恋征婚相亲交友系统v10.0原生小程序源码(无编译加密)上架经验让你少走弯路

首先大家要明白什么是原生小程序&#xff01;以微信小程序为例&#xff0c;原生小程序就是指在微信指定的平台“开发者工具”按照平台规则开发出来的小程序才是原生小程序&#xff0c;像uniapp它就不属于原生小程序是第三方&#xff0c;原生小程序的好处那一万字也说不完&#…

JavaScript第五天(函数,this,严格模式,高阶函数,闭包,递归,正则,ES6)高级

这里写目录标题 JavaScript高级第03天1.函数的定义和调用1.1函数的定义方式1.2函数的调用 2.this2.1函数内部的this指向2.2改变函数内部 this 指向2.2.1 call方法2.2.2 apply方法2.2.3 bind方法2.2.4 call、apply、bind三者的异同 3.严格模式3.1什么是严格模式3.2开启严格模式3…

21. Revit API: 几何对象(二)- Curve

上篇讲了Revit几何对象的类层次结构&#xff0c;讲了几何元素和几何实例&#xff0c;简单提到了Solid。 这一篇呢&#xff0c;就从构成Solid的边讲起。 一、Edge&#xff08;边&#xff09; Edge在Revit中就是用来表示边的&#xff0c;并且在各种表示几何结构的类中串门。 前…

使用 Elementary 实现开源数据可观测性 — 从零到精通(第一部分)

欢迎来到雲闪世界。我希望在我还是初学者时能有一份循序渐进的实践指南 数据可观测性及其重要性经常被讨论和撰写为现代数据和分析工程的一个重要方面。市场上有许多工具&#xff0c;具有各种功能和价格。在这篇由两部分组成的文章中&#xff0c;我们将重点介绍 Elementary 的…

(k8s)kubernetes 挂载 minio csi 的方式

一、安装Minio&#xff08;Minio分布式集群搭建部署_minio集群最少几台-CSDN博客&#xff09; 生成accessKeyID和secretAccessKey&#xff1a; 二、安装csi-s3插件(在k8s集群上) 首先我们把插件的yaml文件都下载下来&#xff0c;为了保证版本测试的一致性&#xff0c;我们下载…

论文阅读:RGBD GS-ICP SLAM

目录 概要 Motivation 整体框架流程 技术细节 小结 论文地址&#xff1a;[2403.12550] RGBD GS-ICP SLAM (arxiv.org) 代码地址&#xff1a;https://github.com/Lab-of-AI-and-Robotics/GS-ICP-SLAM 概要 RGBD GS-ICP SLAM 是一种结合通用迭代最近点算法&#xff08;Ge…

【基础算法总结】前缀和

目录 一&#xff0c;前缀和算法介绍二&#xff0c;算法原理和代码实现【模板】前缀和【模板】二维前缀和724.寻找数组的中心下标238.除自身以外数组的乘积560.和为k的子数组974.和可被k整除的子数组525.连续数组1314.矩阵区域和 三&#xff0c;算法总结 一&#xff0c;前缀和算…

可能一拆为二,英特尔为何走到今天这一步?

【科技明说 &#xff5c; 科技热点关注】 近来看到外媒消息说&#xff0c;英特尔迫于经营压力&#xff0c;也不得不铤而走险&#xff0c;欲将英特尔一分为二&#xff0c;即芯片制造与芯片设计分离开&#xff0c;互相剥离&#xff0c;独立发展。 于是乎&#xff0c;英特尔将分拆…

图卷积神经网络GNN(一)

图卷积神经网络GNN 研究学习的背景 对于图神经网络&#xff08;GNN&#xff09;来输入的数据是图。&#xff08;解决输入数据不规则情况&#xff09;输入的格式不是固定的 研究涵盖&#xff1a;节点分类&#xff08;nodeclassification&#xff09;、边预测&#xff08;link…

​ArcGIS Pro和ArcGIS的10大区别

本文来源&#xff1a;水经注GIS公众号 如果你经常使用ArcGIS 进行制图和分析&#xff0c;那么你一定听说过ArcGIS Pro&#xff0c;这款软件是Esri未来主打的一款桌面GIS软件&#xff0c;那么这款软件和ArcGIS相比有什么不同呢&#xff0c;这里为你列举了两款软件的10大区别&am…

海康威视相机在QTcreate上的环境配置教程(qt+opencv+海康SDK)

环境配置教程 前言&#xff1a;环境配置&#xff1a;1.海康SDK2.opencv 参考导入文件 前言&#xff1a; 配置环境是编程的第一步&#xff0c;所以写这篇文章来指导环境的配置。如果已经配置好了&#xff0c;想在qt上使用海康的摄像头&#xff0c;可以参考这篇文章&#xff1a;…

骨传导耳机哪个品牌好用?良心测评推荐5大高分骨传导耳机!

在快节奏、数字化的生活时代&#xff0c;耳机成为连接外界与个人世界的桥梁&#xff0c;尤其在户外运动和健身场景中更是不可或缺。传统入耳式耳机虽然携带方便、音质优秀&#xff0c;但长时间佩戴会对耳道和鼓膜造成压力&#xff0c;甚至引发耳部不适。为解决这一痛点&#xf…

windows下自启springboot项目(jar+nginx)

1、将springboot项目打包为jar 2、新建文本文档 test.txt&#xff0c;并输入 java -jar D:\test\test.jar&#xff08;修改为自己的jar包位置&#xff09; 保存 然后修将后缀名改为 .bat 3、在同一目录再新建 文本文档test.txt&#xff0c;输入以下内容&#xff0c;&…

Meme“淘金”热潮下:Meme发射平台的安全风险分析

2023年&#xff0c;Meme赛道成为加密市场和各大公链生态的重点关注板块之一&#xff0c;尤其是在Solana等公链上&#xff0c;Meme代币迎来了爆发。许多Meme代币的交易量飙升&#xff0c;年初Solana生态中的Meme代币交易额甚至达到百亿美元。乘着Meme代币的东风&#xff0c;Meme…

VSCode配置 C/C++ 开发环境

目录 1.概述 2. 安装 C/C 扩展 3. 安装编译器 3.1.Windows 3.2.macOS 3.3.Linux 4. 配置 VSCode 5. 构建和运行 1.概述 在 Visual Studio Code (VSCode) 中配置 C/C 开发环境&#xff0c;需要安装一些扩展和正确配置编译器。以下是详细的步骤&#xff1a; 2. 安装 C/C…

Agilent MSO7104A安捷伦示波器1G 4通道

Agilent MSO7104A安捷伦示波器1G 4通道 附加功能&#xff1a; 带宽&#xff1a;1 GHz 通道&#xff1a;4 个模拟和 16 个数字 采样率&#xff1a;4 GSa/s 记录长度&#xff1a;标准 8 Mpts MegaZoom III 深存储器 垂直分辨率&#xff1a;8位 自动缩放和峰值检测 有见地的…