Qt/QML学习-MenuBarToolBar

devtools/2024/9/25 10:38:16/

QML学习

  • MenuBar&ToolBar例程
  • 视频讲解
  • 代码

main.qml

import QtQuick 2.15
import QtQuick.Window 2.15
import QtQuick.Controls 2.15Window {width: 640height: 480visible: truetitle: qsTr("MenuBar&ToolBar")// 菜单栏MenuBar {id: menuBarcontentWidth: parent.width// 绘制菜单栏背景background: Rectangle {color: "lightGray"Rectangle {width: parent.widthheight: 1anchors.bottom: parent.bottomcolor: "black"}}// 菜单选项代理delegate: MenuBarItem {// 绘制菜单选项背景background: Rectangle {color: highlighted? "black": "gray"border.width: 1}// 绘制菜单选项内容contentItem: Text {font.pointSize: 15color: "white"text: menu.titlehorizontalAlignment: Text.AlignLeftverticalAlignment: Text.AlignVCenter}}Menu {id: menutitle: "菜单1"// 绘制每个选项视图delegate: MenuItem {id: menuItem// 绘制选项展开箭头arrow: Canvas  {x: parent.width - widthimplicitWidth: 40implicitHeight: 40visible: menuItem.subMenuonPaint: {var ctx = getContext("2d")ctx.moveTo(12, 12)ctx.lineTo(width - 12, height / 2)ctx.lineTo(12, height - 12)ctx.closePath()ctx.fill()}}// 绘制选项指示器indicator: Rectangle {width: 24       // 14 + 10height: 20anchors.verticalCenter: parent.verticalCentercolor: "transparent"Rectangle {width: 14height: 14anchors.verticalCenter: parent.verticalCenteranchors.left: parent.leftanchors.leftMargin: 10visible: menuItem.checkedcolor: "black"radius: 7}}// 绘制选项内容视图contentItem: Text {leftPadding: menuItem.indicator.widthrightPadding: menuItem.arrow.widthtext: menuItem.textfont.pointSize: 15opacity: enabled ? 1.0 : 0.3color: menuItem.highlighted ? "white" : "black"horizontalAlignment: Text.AlignLeftverticalAlignment: Text.AlignVCenterelide: Text.ElideRight}// 绘制选项背景视图background: Rectangle {implicitWidth: 200implicitHeight: 40opacity: enabled ? 1 : 0.3color: menuItem.highlighted ? "gray" : "transparent"}}Action {text: "选项1"checkable: truechecked: true}MenuSeparator {}Action {text: "选项2"}Menu{title: "选项3"Action{ text: "选项4" }Action{ text: "选项5" }}}Menu {title: "About"Action {text: "选项1"checkable: true}}}// 工具栏ToolBar {anchors.top: menuBar.bottomwidth: parent.widthRow {ToolButton {text: "关注"contentItem: Rectangle {color: "transparent"border.width: 1Text {anchors.centerIn: parenttext: parent.parent.text}}padding: 0}ToolButton {text: "点赞"}}}
}

演示

视频讲解


http://www.ppmy.cn/devtools/102631.html

相关文章

深入理解DPO(Direct Preference Optimization)算法

目录 1. 什么是DPO?2. Bradley-Terry模型2.1 奖励模型的训练 3. 从PPO到DPO4. DPO的简单实现5. 梯度分析Ref 1. 什么是DPO? 直接偏好优化(Direct Preference Optimization, DPO)是一种不需要强化学习的对齐算法。由于去除了复杂的…

SAP ERP与长城汽车EDI业务集成案例(SAP CPI平台)

一、项目背景 某智能座舱公司是国内领先的智能座舱领域科技公司,致力于成为智能网联行业变革的领导者和推动者,聚焦整车域控制器产品、智能网联软件产品和运营服务产品; 已建成首条先进的数智化域控制器生产线,为客户提供最优…

【ORACLE】如何使用EXPLAIN PLAN来分析 listagg() 函数的性能瓶颈?

在Oracle数据库中,EXPLAIN PLAN 语句用于显示SQL语句的执行计划,这对于分析和优化查询性能至关重要。要使用 EXPLAIN PLAN 来分析包含 LISTAGG 函数的查询的性能,你可以按照以下步骤操作: 步骤 1: 生成执行计划 首先&#xff0c…

Midjourney Describe API 的对接和使用

Midjourney Describe API 的对接和使用 Midjourney Describe API 的主要功能是通过上传图片,获取对图片的描述。使用该 API,只需要传递图片文件地址,API 会返回图片的详细描述。无需繁琐的参数设置,即可获得高质量的图片描述。 …

Mysql语句性能优化

SQL查询过程 查询缓存: 执行查询语句的时候,会先查询缓存(MySQL 8.0 版本后移除,因为这个功能不太实用)。分析器: 没有命中缓存的话,SQL 语句就会经过分析器,分析器说白了就是要先看…

dubbo:dubbo服务负载均衡、集群容错、服务降级、服务直连配置详解(五)

文章目录 0. 引言1. dubbo负载均衡1.1 负载均衡算法1.2. dubbo负载均衡使用1.3 自定义负载均衡策略 2. dubbo服务容错2.1 8种服务容错策略2.2 自定义容错策略 3. dubbo服务降级(mock)4. dubbo服务直连5. 总结 0. 引言 之前我们讲解了dubbo的基本使用&am…

[数据集][目标检测]电力场景输电线杆塔塔架金属锈蚀腐蚀生锈检测数据集VOC+YOLO格式1344张1类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):1344 标注数量(xml文件个数):1344 标注数量(txt文件个数):1344 标注…

《探索现代JavaScript中的异步编程》

探索现代JavaScript中的异步编程 随着Web应用变得越来越复杂,前端开发中对异步处理的需求也日益增加。JavaScript 作为 Web 开发中最主要的语言之一,提供了多种异步编程的方法来帮助开发者编写高效、可维护的应用程序。本文将介绍几种现代 JavaScript 中…