【Godot4.2】菜单相关控件和节点完全解析

MenuBar

MenuBar的逻辑是:

  • 添加到其中的PopupMenu节点,会自动水平排列(类似于HBoxContainer)。
  • PopupMenu隐藏,而自动将其创建为可以点击的MenuButton形式,MenuButton的文本将与PopupMenu节点的名称一致
    在这里插入图片描述
  • MenuBar不是必需品,通过为HBoxContainer添加MenuButton,可以获得类似的效果,而且可以添加其他控件,更加灵活。
    在这里插入图片描述

MenuButton

  • MenuButton = Button + PopupMenu,默认显示Button,隐藏PopupMenu,点击Button时显示PopupMenu
  • Button用于代表一个菜单,PopupMenu代表菜单项列表
  • 通过get_popup()方法,可以获取MenuButtonPopupMenu

PopupMenu

PopupMenu的逻辑是:

  • 可以添加若干菜单项,并响应和处理菜单项的点击

为PopupMenu菜单项添加子菜单

  • 本质是为PopupMenu添加子PopupMenu,并为其某个菜单项指定该子PopupMenu的名称。

比如下面的结构:

我们为MenuBar的第一个PopupMenu添加一个子PopupMenu,并更名为“SubPopupMenu”。

在这里插入图片描述

我们为“PopupMenu”节点手动添加两个菜单项,文本分别设为“菜单项1”和“菜单项2”。为“SubPopupMenu”节点添加两个菜单项,文本分别设为“子菜单项1”和“子菜单项2”。

在这里插入图片描述
然后我们为“MenuBar”节点添加如下代码:

extends MenuBar@onready var popup_menu = $PopupMenu
@onready var sub_popup_menu = $PopupMenu/SubPopupMenufunc _ready():# 将SubPopupMenu指定为PopupMenu第一个菜单项的子菜单popup_menu.set_item_submenu(0,sub_popup_menu.name)

我们通过set_item_submenu方法为“PopupMenu”节点的第一个菜单项添加子菜单“SubPopupMenu”。

运行后就可以看到,“PopupMenu”的第一个菜单项可以正确显示和弹出“SubPopupMenu”。

在这里插入图片描述

对于子菜单的菜单项的子菜单,是类似的道理,需要子PopupMenu下再添加子PopupMenu
这种结构理论上可以无限下去,从而创建十分复杂的菜单。

在这里插入图片描述

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

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

相关文章

C++初阶 | [八] (下) vector 模拟实现

摘要:vector 模拟实现讲解(附代码示例),隐藏的浅拷贝,迭代器失效 在进行 vector 的模拟实现之前,我们先粗略浏览一下 stl_vector.h 文件中的源码来确定模拟实现的大体框架。 这里提供一些粗略浏览源码的技巧…

防御-day3-内容安全(入侵检测-IPS,防病毒网关-AV)

一、内容安全 1、华为---IAE引擎 核心技术 DPI---深度包检测---主要针对完整的数据包(数据包分片,分段需要重组),之后对 数据包的内容进行识别。(应用层) DFI---深度流检测---一种基于流量行为的应用识别技…

SpringCloud(17)之SpringCloud Stream

一、Spring Cloud Stream介绍 Spring Cloud Stream是一个框架,用于构建与共享消息系统连接的高度可扩展的事件驱动微服务。该框架提供了一个灵活的编程模型,该模型建立在已经建立和熟悉的Spring习惯用法和最佳实践之上,包括对持久发布/子语义…

Coze开源软件Windows客户端-coze_desk

字节的coze相信大家都已经有所关注了,最近看到很多公众号在推。笔者也在使用,体验很不错。 这个是官网:https://www.coze.com/。 官网版 应用的样子 三栏式布局,用起来还是可以的。 不过这个是在浏览器端,有时候不小…

springcloud -远程调用方式

如果我们要进行远程微服之间的调用该如何完成呢,本文以案例推动以养老系统中老人支付购买商品为例,一步步实现远程微服务的调用。 目标 微服务之间的调用方式 老人支付 common模块设计 统一返回 package com.wnhz.ssc.common.result;import lombok.G…

书生·浦语大模型全链路开源体系介绍

背景介绍 随着人工智能技术的迅猛发展,大模型技术已成为当今人工智能领域的热门话题。2022 年 11 月 30 日,美国 OpenAI 公司发布了 ChatGPT 通用型对话系统 并引发了全球 的极大关注,上线仅 60 天月活用户数便超过 1 亿,成为历史…

开源人脸检测模型MTCNN简单的例子

阅读本文之前可以先参阅----神经网络中的重要概念 如何快速入门深度学习 当使用MTCNN模型进行人脸检测时,你可以使用Python编程语言和相应的深度学习库来实现。下面是一个简单的例子,演示了如何使用MTCNN模型进行人脸检测: 首先,…

每日学习总结20240227

每日总结 20240227 1.如何将字符串通过串口以十六进制进行传输 将文件名或者文件内容通过串口传输,再解析,拼接成源文件 1.1 文件转换 1.1.1 转十六进制 在Linux中,你可以使用 xxd 命令将文本文件转换为十六进制格式。以下是如何在Linux中…

天翼云登录参数JavaSrcipt逆向

天翼云登录参数 password 、comParam_curTime、comParam_seqCode、comParam_signature JavaSrcipt逆向 目标网站 https://m.ctyun.cn/wap/main/auth/login?redirect/my 目标参数 要逆向的有 password、comParam_curTime、comParam_seqCode、comParam_signature 四个参数 …

【蓝桥杯嵌入式】蓝桥杯嵌入式第十四届省赛程序真题,真题分析与代码讲解

🎊【蓝桥杯嵌入式】专题正在持续更新中,原理图解析✨,各模块分析✨以及历年真题讲解✨都已更新完毕,欢迎大家前往订阅本专题🎏 🎏【蓝桥杯嵌入式】蓝桥杯第十届省赛真题 🎏【蓝桥杯嵌入式】蓝桥…

软件测试笔记(三):黑盒测试

1 黑盒测试概述 黑盒测试也叫功能测试,通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作是一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,对程序接口进行测试,只检查程序功能是否按…

Web前端3D JS框架和库 整理

在WebGL库和SVG/Canvas元素的支持下,JavaScript变得惊人的强大。几乎可以为网络构建任何东西,包括基于浏览器的游戏和本地应用,许多最新的突破性功能都在3D上运行。 为此,「数维图小编」整理了19个交互式3D Javascript库和框架&am…

开心的金明

好久没发文章了,随着这一题开始2024年吧! 题目描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品&…

每日一练:LeeCode-235、二叉搜索树的最近公共祖先【二叉搜索树+DFS+从上往下】

本文是力扣每日一练:LeeCode-235、二叉搜索树的最近公共祖先【二叉搜索树DFS从上往下】 学习与理解过程,本文仅做学习之用,对本题感兴趣的小伙伴可以出门左拐LeeCode。 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百…

idea2023新UI风格不见了怎么办?

用了一段时间idea2023,有一天不知道点了什么,整个UI又变成了2022的风格 如果想换成2023的UI风格怎么办? 点击file->setting->new UI->勾选Enable new UI,restart就可以回到最新版本的UI了 新风格

wu-framework-parent 项目明细

wu-framework-parent 介绍 springboot 版本3.2.1 wu-framework-parent 是一款由Java语言开发的框架,目标不写代码但是却能完成功能。 框架涵盖无赖ORM( wu-database-lazy-starter)、仿生组件 、easy框架系列【Easy-Excel、easy-listener、easy-upsert】 授权框架(…

【C++进阶】STL容器--list底层剖析(迭代器封装)

目录 前言 list的结构与框架 list迭代器 list的插入和删除 insert erase list析构函数和拷贝构造 析构函数 拷贝构造 赋值重载 迭代器拷贝构造、析构函数实现问题 const迭代器 思考 总结 前言 前边我们了解了list的一些使用及其注意事项,今天我们进一步深入…

对于大前端开发来说,转鸿蒙开发究竟是福还是祸?

从铺天盖地的市场消息来看,华为即将面世的鸿蒙NEXT系统已经势不可挡了 想必大家都已经迫不及待地想要进行尝试。 估计大家都有着同样的疑问: 会不会是下一个风口?转鸿蒙应用开发难吗? 会不会是下一个风口? 自从鸿蒙…

C++:类与对象(3)

创作不易,感谢三连 一、深入解析构造函数 如上图,在一般情况下,我们认为A类中的_a1和_a2只不过是声明,并没有开空间,而真正的空间开辟是在【定义】的时候,也就是我们根据这个类实例化出整个对象的时候。 …

高级RAG:从理论到 LlamaIndex 实现,解决原始 RAG 管道的局限性

原文地址:Advanced Retrieval-Augmented Generation: From Theory to LlamaIndex Implementation 如何通过在 Python 中实现有针对性的高级 RAG 技术来解决原始 RAG 管道的局限性 2024 年 2 月 19 日 如何通过在 Python 中实现有针对性的高级 RAG 技术来解决 naiv…