QT6 源(111):阅读与注释菜单栏 QMenuBar,进行属性与成员函数测试,信号与槽函数测试,并给出源码
(1)
(2)
(3)
++
(4)
(5)
(6)
(7)以下源代码来自于头文件 qmenubar . h :
#ifndef QMENUBAR_H
#define QMENUBAR_H#include <QtWidgets/qtwidgetsglobal.h>
#include <QtWidgets/qmenu.h>QT_REQUIRE_CONFIG(menubar);QT_BEGIN_NAMESPACE //说明本菜单栏定义于 Qt的全局命名空间class QMenuBarPrivate;
class QStyleOptionMenuItem;
class QWindowsStyle;
class QPlatformMenuBar;/*
The QMenuBar class provides a horizontal menu bar.不需要设置菜单栏。它会自动将其几何形状设置为父控件的顶部,并在父控件重新调整大小时适当地进行更改。Usage:
在大多数主要窗口样式应用程序中,
您将使用QMainWindow中提供的menuBar()函数,将QMenus添加到菜单栏中,并将QActions添加到弹出菜单中。可以通过使用QWidgetAction类的实例来将小部件添加到菜单中。
然后,可以使用通常的方式将这些动作插入菜单中;请参阅QMenu文档以获取详细信息。Platform Dependent Look and Feel:
不同的平台对菜单栏的外观以及用户与菜单栏交互时的行为有不同的要求。
例如,Windows 系统通常配置为仅在按下 AIt 键时显示带下划线的字符助记符,
这些助记符指示菜单栏中项目的键盘快捷方式。QMenuBar as a Global Menu Bar :
在macOs和某些Linux桌面环境中,如Ubuntu Unity,
QMenuBar是用于使用系统级菜单栏的包装器.
如果在同一个对话框中有多个菜单栏,
则最外面的菜单栏(通常位于具有widget标志Qt::Window的widget中)将用于系统级菜单栏。
...........*/class Q_WIDGETS_EXPORT QMenuBar : public QWidget
{Q_OBJECT//此属性包含弹出窗口的方向. 默认弹出窗口的方向。默认情况下,菜单会“向下”弹出屏幕。//通过将属性设置为true,菜单将“向上”弹出。您可以将此调用用于位于它们所指向的文档下方的菜单。//如果菜单无法在屏幕上显示,则自动使用其他方向。Q_PROPERTY(bool defaultUp //决定下拉菜单的弹出方向,默认向下弹出。READ isDefaultUp WRITE setDefaultUp)Q_PROPERTY(bool nativeMenuBar //本属性在 windows系统上无用READ isNativeMenuBar WRITE setNativeMenuBar)//这个属性表示在支持它的平台上是否将使用菜单栏作为原生菜单栏。//此属性指定是否应在支持的平台上将菜单栏用作原生菜单栏。目前支持的平台是macOS和Linux桌面,//它们使用com,canonical.dbusmeny D-Bus接口(例如Ubuntu Unity)。//如果此属性为真,则菜单栏在原生菜单栏中使用,不在其父窗口中;如果为假,则菜单栏保留在窗口中。//在其他平台上,设置此属性没有影响,读取此属性将始终返回假。//默认情况下,会遵循是否为该应用程序设置了 Qt:AA_DontUseNativeMenuBar属性。//显式设置此属性会覆盖属性的存在(或不存在)。private:Q_DECLARE_PRIVATE(QMenuBar)Q_DISABLE_COPY(QMenuBar)Q_PRIVATE_SLOT(d_func(), void _q_actionTriggered())Q_PRIVATE_SLOT(d_func(), void _q_actionHovered())Q_PRIVATE_SLOT(d_func(), void _q_internalShortcutActivated(int))Q_PRIVATE_SLOT(d_func(), void _q_updateLayout())friend class QMenu ; //本菜单栏类的友元类是菜单 QMenufriend class QMenuPrivate ;friend class QWindowsStyle;public:explicit QMenuBar(QWidget * parent = nullptr);~QMenuBar();// Q_PROPERTY(bool defaultUp //决定下拉菜单的弹出方向,默认向下弹出。
// READ isDefaultUp WRITE setDefaultUp)bool isDefaultUp() const;void setDefaultUp(bool);// Q_PROPERTY(bool nativeMenuBar //本属性在 windows系统上无用
// READ isNativeMenuBar WRITE setNativeMenuBar)bool isNativeMenuBar() const;void setNativeMenuBar(bool nativeMenuBar);QPlatformMenuBar * platformMenuBar(); //无注释//菜单栏里的按钮是由 QMenu::menuAction()得到的。//总结:以为菜单栏里插入的是菜单,其实插入的是对应代表菜单的按钮QAction。//Returns the QAction that is currently highlighted, if any, else nullptr.QAction * activeAction() const; //显示菜单栏上被高亮显示的按钮void setActiveAction(QAction * action);//Sets the currently highlighted action to action.//这俩函数的意思是不必为每个按钮单独设置触发与高亮函数,只为按钮的容器,菜单栏或菜单设计槽函数即可。//Returns the widget on the left of the first or on the right of the last menu item,// depending on corner.//Note: Using a corner other than Qt::TopRightCorner or// Qt::TopLeftCorner will result in a warning.//enum Qt::Corner { TopLeftCorner = 0, TopRightCorner = 1,// BottomLeftCorner = 2, BottomRightCorner = 3 };QWidget * cornerWidget(Qt::Corner corner = Qt::TopRightCorner) const;void setCornerWidget(QWidget * w,Qt::Corner corner = Qt::TopRightCorner);//This sets the given w to be shown directly on the left of the first menu item,//or on the right of the last menu item, depending on corner.//The menu bar takes ownership of widget, reparenting it into the menu bar.//However, if the corner already contains a widget,//this previous widget will no longer be managed and will still be a// visible child of the menu bar.QSize sizeHint() const override;QSize minimumSizeHint() const override;int heightForWidth(int) const override;QRect actionGeometry(QAction *) const; //因为本菜单栏也可以直接管理按钮QAction * actionAt(const QPoint &) const; //略,这俩函数在 QMenu里也出现过void clear(); //Removes all the actions from the menu bar.//This convenience function inserts menu before action before and returns the// menus menuAction(). //把菜单 menu 放到 before的前面,并返回 menu对应的 QActionQAction * insertMenu(QAction * before, QMenu * menu); //在菜单里也可以插入子菜单QAction * addMenu(QMenu * menu); //在菜单栏的末尾追加菜单,返回菜单对应的按钮。//Appends menu to the menu bar. Returns the menu's menuAction().//The menu bar does not take ownership of the menu.QMenu * addMenu(const QString & title);//生成一个菜单,其对应的按钮项叫 title//Appends a new QMenu with title to the menu bar.//The menu bar takes ownership of the menu. Returns the new menu.QMenu * addMenu(const QIcon & icon, const QString & title);//Appends a new QMenu with icon and title to the menu bar.//The menu bar takes ownership of the menu. Returns the new menu.//This convenience function creates a new separator action,//i.e. an action with QAction::isSeparator() returning true.//The function inserts the newly created action into this menu bar's list of// actions before action before and returns it.QAction * insertSeparator(QAction * before); //在菜单栏里 before按钮的前面插入分隔符QAction * addSeparator(); //Appends a separator to the menu.//经测试,新添加的分隔符的容器父类,就是菜单栏。但经测试,菜单栏里似乎不允许或不显示添加的分隔符。//该 addAction() 函数的正确用法如下:可见 QMenu::menuAction()这个函数很重要!!// menubar->addAction(menu_F->menuAction()); //为菜单栏添加"文件(&F)"菜单// menu_F ->setTitle(// QCoreApplication::translate("MainWindow", //设置菜单的名字,以及快捷键// "\346\226\207\344\273\266(&F)", nullptr));using QWidget::addAction;//void QWidget::addAction(QAction * action);QAction * addAction(const QString & text); //说明菜单栏里可以添加普通按钮//This convenience function creates a new action with text.//The function adds the newly created action to the menu's list of actions,// and returns it.QAction * addAction(const QString & text, //为菜单栏创建按钮,并为其指定槽函数。const QObject * receiver, const char * member);// addAction(QString)://Connect to a QObject slot / functor or function pointer (with context)template<typename Obj, typename Func1>inline typename std::enable_if<!std::is_same<const char *, Func1>::value&& QtPrivate::IsPointerToTypeDerivedFromQObject<Obj *>::Value,QAction *>::typeaddAction(const QString & text, const Obj * object, Func1 slot){ //把创建的文本为 text的按钮的 triggered()信号连接到形参 object的 slot槽函数上QAction * result = addAction(text);connect(result, & QAction::triggered, object, std::move(slot));return result;}// addAction(QString)://Connect to a functor or function pointer (without context)template <typename Func1>inline QAction * addAction(const QString & text, Func1 slot){ //把创建的 text按钮的信号连接到全局槽函数 slot上。QAction * result = addAction(text);connect(result, & QAction::triggered, std::move(slot));return result;}public Q_SLOTS:void setVisible(bool visible) override; //菜单栏消失,窗体整体上移,工具栏占据了菜单栏的位置。//Reimplements an access function for property: QWidget::visible.Q_SIGNALS://This signal is emitted when an action in a menu belonging to this menubar//is triggered as a result of a mouse click; //注意上面的话:an action in a menu//action is the action that caused the signal to be emitted.//Note: QMenuBar has to have ownership of the QMenu in order this signal to work.//Normally, you connect each menu action to a single slot using QAction::triggered(),//but sometimes you will want to connect several items to a single slot//(most often if the user selects from an array). This signal is useful in such cases.//即使菜单栏里的按钮被敲击,也不会触发 triggered()信号。void triggered(QAction * action); //菜单栏里的菜单里的按钮被鼠标敲击,才触发本信号。void hovered(QAction * action); //菜单栏里的按钮高亮时触发本信号。注意这俩信号对按钮的区别。//This signal is emitted when a menu action is highlighted;//action is the action that caused the event to be sent.//Often this is used to update status information.protected:virtual void initStyleOption(QStyleOptionMenuItem * option,const QAction * action) const;bool eventFilter(QObject *, QEvent *) override;bool event(QEvent *) override;void changeEvent(QEvent *) override;void keyPressEvent(QKeyEvent *) override;void mouseReleaseEvent(QMouseEvent *) override;void mousePressEvent(QMouseEvent *) override;void mouseMoveEvent(QMouseEvent *) override;void leaveEvent(QEvent *) override;void paintEvent(QPaintEvent *) override;void resizeEvent(QResizeEvent *) override;void actionEvent(QActionEvent *) override;void focusOutEvent(QFocusEvent *) override;void focusInEvent(QFocusEvent *) override;void timerEvent(QTimerEvent *) override;}; //完结 class QMenuBar : public QWidgetQT_END_NAMESPACE#endif // QMENUBAR_H
(8)
谢谢
相关文章:
QT6 源(111):阅读与注释菜单栏 QMenuBar,进行属性与成员函数测试,信号与槽函数测试,并给出源码
(1) (2) (3) (4) (5) (6) (7)以下源代码来自于头文件 qmenubar . h : #ifndef QMENUBAR_H #defi…...
达梦数据库对json字段进行操作
在达梦数据库中,字段类型不能显式定义为JSON,通常以VARCHAR或TEXT类型存储JSON字符串,可以通过内置的JSON函数对JSON格式数据进行操作和条件过滤。 1. 创建表并插入JSON数据 假设字段类型为VARCHAR,存储JSON字符串: -…...
基于vue框架的东莞市二手相机交易管理系统5yz0u(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
系统程序文件列表 项目功能:用户,相机分类,二手相机 开题报告内容 基于FlaskVue框架的东莞市二手相机交易管理系统开题报告 一、研究背景与意义 1.1 研究背景 随着数字技术的迅猛发展和摄影文化的广泛普及,相机已成为人们记录生活、表达创意的重要工…...
谷歌 NotebookLM 即将推出 Sparks 视频概览:Gemini 与 Deep Research 加持,可生成 1 - 3 分钟 AI 视频
近期,谷歌旗下的 NotebookLM 即将推出一项令人瞩目的新功能 ——Sparks 视频概览。这一功能借助 Gemini 与 Deep Research 的强大能力,能够生成 1 - 3 分钟的 AI 视频,为用户带来全新的内容创作与信息获取体验。 NotebookLM:AI 笔…...
MCP详解
前言:AI能力跃迁的“最后一公里” 当前,大语言模型(LLMs)已展现出文本生成、逻辑推理等通用能力,但其与真实世界的交互仍存在瓶颈。传统模式下,开发者需为每个外部工具(如数据库、API、文件系统)编写定制化接口,导致开发周期长、兼容性差、安全风险高。而模型上下…...
信息学奥赛一本通 1539:简单题 | 洛谷 P5057 [CQOI2006] 简单题
【题目链接】 ybt 1539:简单题 洛谷 P5057 [CQOI2006] 简单题 【题目考点】 1. 树状数组 模板题及讲解:洛谷 P3374 【模板】树状数组 【解题思路】 解法1:树状数组 该有01构成数组初值都为0。 某位置的元素被修改奇数次后值为1&#x…...
设计模式-面试题
摘要: 1、通俗易懂,适合小白 2、仅做面试复习用,部分来源网络,博文免费,知识无价,侵权请联系! 1. 什么是设计模式? 设计模式是在软件开发过程中,针对反复出现的问题所…...
upload-labs靶场通关详解:第11关
一、分析源代码 $is_upload false; $msg null; if (isset($_POST[submit])) {if (file_exists(UPLOAD_PATH)) {$deny_ext array("php","php5","php4","php3","php2","html","htm","phtml"…...
excel:时间戳格式与日期格式的互转
13位时间戳转日期时间(毫秒) 假设A2单元格内容为13位的时间戳,再选中B2单元格,在公式框中输入 TEXT((A2/10008*3600)/8640070*36519,"yyyy/mm/dd hh:mm:ss.000")接下来,选中B2单元格,下拉应用公…...
嵌套式向量中断控制器(NVIC)
1.概述 2. NVIC 的中断处理机制 3. NVIC 中断管理机制 1.概述 中断控制器是ARMv7-M 异常模型的核心组成部分。该中断控制器的运行遵循 ARM 通用中断控制器(GIC)规范,该规范也适用于其他 ARMv7 架构配置和其他处理器架构。 ARMv7-M 的 NVIC(嵌套向量中断控制器)架构支持最…...
2025.05.19【Barplot】柱状图的多样性绘制
Custom color A few examples showing how to custom barplot color. Horizontal barchart It makes sense to make your barchart horizontal: group labels are now much easier to read 文章目录 Custom colorHorizontal barchart 探索Barplot的奥秘Barplot基础什么是Barp…...
MongoDB的管道聚合
管道聚合可以实现很多数据处理和统计功能,并且随着不断的更新,其功能也越来越丰富。代表着NoSQL数据库的一种发展趋势。 管道聚合通过aggregate语句实现,支持多种匹配、处理、输出方式。 其语法是: db.<collection>.aggr…...
基于 STM32 的自动温度巡检小车控制系统设计与实现
一、引言 在工业监控、仓储管理及环境监测等场景中,自动温度巡检系统具有重要应用价值。本文设计一种基于 STM32 单片机的自动温度巡检小车,通过集成温度采集、路径规划及数据处理功能,实现对目标区域的实时温度监测与异常报警,为智能化环境监控提供低成本解决方案。 二、…...
怎么利用JS根据坐标判断构成单个多边形是否合法
怎么利用JS根据坐标判断构成单个多边形是否合法 引言 在GIS(地理信息系统)、游戏开发、计算机图形学等领域,判断一组坐标点能否构成合法的简单多边形(Simple Polygon)是一个常见需求。合法多边形需要满足几何学上的基本规则,本文将详细介绍如何使用JavaScript实现这一判…...
20. 自动化测试框架开发之Excel配置文件的IO开发
20.自动化测试框架开发之Excel配置文件的IO开发 一、核心架构解析 1.1 类继承体系 class File: # 文件基类# 基础文件验证和路径管理class ExcelReader(File): # Excel读取器# 实现Excel数据解析逻辑1.2 版本依赖说明 # 必须安装1.2.0版本(支持xlsx格式&#…...
高校快递物流管理系统设计与实现(SpringBoot+MySQL)
💗博主介绍💗:✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 温馨提示:文末有 CSDN 平台官方提供的老师 Wechat / QQ 名片 :) Java精品实战案例《700套》 2025最新毕业设计选题推荐…...
python-leetcode 67.寻找两个正序数组中的中位数
题目: 给定两个大小分别为m和n的正序(从小到大)数组nums1和nums2。请找出并返回这两个正序数组的中位数。 通过双指针和二分查找的思想,找到两个有序数组的中位数。 1.初始化和基本情况处理 首先获取两个个数组的长度m和n,计算…...
Python 实现图片浏览和选择工具
实现将截图预览,并按照顺序加入一个pdf文件中,实现照片管理尤其对于喜欢看教程截图做笔记的网友们。 C:\pythoncode\new\python-image-pdf-processor.py 界面展示 🧱 一、核心结构概述 主类 ImageViewer(wx.Frame) 是主窗口类,…...
V4L2应用程序开发-01数据采集流程
1 数据采集流程 可以参考这些文件: mjpg-streamer\mjpg-streamer-experimental\plugins\input_control\input_uvc.c video2lcd\video\v4l2.c Video for Linux two(Video4Linux2)简称V4L2,是V4L的改进版。V4L2支持三种方式来采集图像:内存…...
TDengine 2025年产品路线图
TDengine OSS 之 2025 年年度路线图如下表所示。 季度功能2025Q1 虚拟表查询能力:REGEXP、GREATEST、LEAST、CAST 函数支持判断表达式、单行选择函数的其他列值、INTERP 支持插值时间范围存储能力:支持将查询结果写入超级表、超级表支持 KEEP 参数、STM…...
Unreal 从入门到精通之SceneCaptureComponent2D实现UI层3D物体360°预览
文章目录 前言SceneCaptureComponent2D实现步骤新建渲染目标新建材质UI控件激活3DPreview鼠标拖动旋转模型最后前言 我们在(电商展示/角色预览/装备查看)等应用场景中,经常会看到这种3D展示的页面。 即使用相机捕获一个3D的模型的视图,然后把这个视图显示在一个UI画布上,…...
windows服务器部署jenkins工具
sjenkins作为一款构建发布工具,极大的简化了大家项目部署发布流程。jenkins通常是部署在linux服务上,今天给大家分享的是windows服务器上如何搭建jenkins发布工具。 1.首先第一步还是看windows安装docker 这篇文章哈,当然也可以不采用docker…...
Java—— File详解
说明 File对象就表示一个路径,可以是文件的路径、也可以是文件夹的路径 这个路径可以是存在的,也允许是不存在的 获取File对象 方法名称说明public File(String pathname)根据文件路径创建文件对象public File(String parent,String child)根据父路径名…...
「NameCraft · 幻想命名器」开发记:我和 CodeBuddy 的一次奇幻共创之旅
起心动念:我想做一个不一样的名字生成器 最近我有一个脑洞:能不能做一个风格化强烈的名字生成器?不要那种平平无奇的「小明、小红」类型,而是支持「幻想风」「武侠感」「赛博感」的那种,最好还有高颜值的 UIÿ…...
03 接口自动化-精通Postman之接口鉴权,接口Mock,接口加解密以及接口签名Sign
文章目录 一、接口鉴权(鉴定是否有访问接口的权限)1、cookie,session,token鉴权。2、Postman的鉴权方式 二、接口Mock Sersver三、接口的加解密四、接口签名sign(接口鉴权的一种)1.什么是接口签名ÿ…...
深入浅出IIC协议 -- 第二篇:FPGA数字接口设计方法论
第二篇:FPGA数字接口设计方法论 副标题 :从状态机到跨时钟域——打造工业级I2C控制器的设计密码 1. 状态机设计黄金法则 1.1 状态机类型抉择 Mealy与Moore对比实验 : 类型输出依赖时序特性I2C适用场景Moore仅当前状态延迟稳定协议主状态控…...
20250519使用TF卡将NanoPi NEO core开发板刷机为Ubuntu core22.04.3系统完成之后执行poweroff自动关机
1、h3-sd-friendlycore-xenial-4.14-armhf-20210618.img.gz 在WIN10下使用7-ZIP解压缩/ubuntu20.04下使用tar 2、Win32DiskImager.exe 写如32GB的TF卡。【以管理员身份运行】 3、TF卡如果已经做过会有3个磁盘分区,可以使用SD Card Formatter/SDCardFormatterv5_WinE…...
什么是USB的EHCI和OHCI
USB的EHCI和OHCI是两种不同的主机控制器接口标准,用于规范计算机如何通过硬件和软件与USB设备通信。它们分别对应不同的USB协议版本和设备类型,以下是详细解析: 1. OHCI(Open Host Controller Interface) • 定位&…...
【2025最新版】Origin安装教程 - 超详细Origin2024中文版图文教程(保姆级附带Origin安装包)
文章目录 前言Origin安装前的必要准备Origin安装包获取Origin安装图文步骤第一步:解压安装包第二步:启动安装程序第三步:安装向导操作第四步:填写注册信息第五步:选择安装位置第六步:功能选择与安装第七步&…...
【网络编程】十二、两万字详解 IP协议
文章目录 Ⅰ. 基本概念1、网络层解决的问题2、保证数据可靠的从一台主机送到另一台主机的前提3、路径选择4、主机和路由器的区别 Ⅱ. IP协议格式IP如何将报头与有效载荷进行分离?IP如何决定将有效载荷交付给上层的哪一个协议?理解socket编程 Ⅲ. 分片与组…...
【机器学习】线性回归和损失函数
线性回归 1.什么是线性回归? 线性回归指的就是将一些输入项乘以相应的权重系数,然后相加得到输出结果。线性回归是机器学习中一种有监督学习的算法,回归问题主要研究的是因变量与一个或多个自变量之间的关系。 在学习线性回归知识之前,我们…...
ip与mac-数据包传输过程学习
你管这破玩意叫网络? 内容来源于飞天闪客,以前没有学习过网络的相关基础知识,只会去瞎设置,现在终于是弄明白了。 多台电脑之间想要通信,可以直接通过一条网线进行连接。但是随着网线的增加,这个就会比较…...
【Qwen开源】WorldPM: 扩展人类偏好建模
受语言建模中的缩放定律启发,该定律展示了测试损失如何随着模型和数据集的规模呈幂律关系扩展,我们发现类似的定律也存在于偏好建模中。我们提出了世界偏好建模(WorldPM)来强调这种扩展潜力,其中世界偏好体现了人类偏好…...
如何设计一个二级缓存(Redis+Caffeine)架构?Redis 6.0多线程模型如何工作?
一、二级缓存(RedisCaffeine)架构设计 1. 设计目标 通过「本地缓存(Caffeine) 分布式缓存(Redis)」的分层结构,实现: 低延迟:热点数据本地缓存(内存级访问…...
MYSQL8.0常用窗口函数
MYSQL8.0常用窗口函数 一、窗口函数的基本概念 窗口函数,顾名思义,就是在查询结果集中定义一个“窗口”,在这个窗口内进行数据的计算和分析。与普通聚合函数不同,普通聚合函数会将结果集分组并返回每组的单一汇总值,…...
【Pandas】pandas DataFrame pct_change
Pandas2.2 DataFrame Computations descriptive stats 方法描述DataFrame.abs()用于返回 DataFrame 中每个元素的绝对值DataFrame.all([axis, bool_only, skipna])用于判断 DataFrame 中是否所有元素在指定轴上都为 TrueDataFrame.any(*[, axis, bool_only, skipna])用于判断…...
Model 复现系列(一)OpenVLA
这个系列用来记录一些开源模型在本地部署或测试时遇到的一些坑以及解决方案。 系列第一篇文章给了 OpenVLA,该模型是具身智能与VLA领域的必读模型之一,虽然现在有很多模型号称超越了它,但作为行业的基石仍然有非常高的地位。 项目链接&…...
Web3:Ubuntu系统 使用Docker-compose方式部署blockscout浏览器配置版本-v5.2.3-beta+charts图表
最近同事告诉我说要重新部署一套blockscout浏览器,我一想,之前有部署流程文档-《Web3:使用Docker-compose方式部署blockscout浏览器+charts图表》,这不手拿把掐吗。 但还是出现了一些问题,之前服务器系统是centos,现在是Ubuntu系统,而且之前docker镜像也没那么难获取,于…...
ECharts-柱状图
柱状图样式设置 Ⅰ、柱条样式 柱条的样式可以通过 series.itemStyle 设置,包括: 柱条的颜色(color);柱条的描边颜色(borderColor)、宽度(borderWidth)、样式ÿ…...
理解UDP协议
在计算机网络中,UDP(用户数据报协议)常被称为“轻量级”传输协议。它不像TCP那样追求可靠传输,而是以简洁高效的设计满足特定场景的需求。本文将带你深入UDP的核心特性、技术细节及其实际应用。 UDP的协议设计 UDP协议的核心…...
Web 技术与 Nginx 网站环境部署
这里写目录标题 一. Web基础域名和DNS域名的概念域名的结构域名结构类型 Hosts文件Hosts文件的作用修改Hosts文件 DNS域名注册 网页与HTML网页概述HTML概述HTML基本标签HTML语法规则HTML文件结构 网站和主页Web1.0 与 Web2.0 静态网页与动态网页静态网页动态网页动态网页语言 H…...
分布式天线系统 (DAS, Distributed Antenna System)
1. 概述 分布式天线系统(DAS) 是一种通过多个分散的天线节点来增强无线信号覆盖和容量的网络架构。它主要用于解决大型建筑、地下设施、体育场馆等场景中的信号盲区或容量不足问题。 2. 主要组成 DAS系统通常包括以下关键组件: 信号源&…...
hexo博客搭建使用
搭建 Hexo 演示主题为:Keep 使用 文章 创建新文章 ➜ zymore-blog-keep git:(main) ✗ hexo new "告别H5嵌入!uniApp小程序文件下载与分享完整解决方案" INFO Validating config INFO Created: ~/Desktop/HelloWorld/zymore-blog-k…...
Git上传项目到GitHub
Git上传项目到GitHub 下载Git客户端配置Git设置GitHub上传本地项目到Github 下载Git客户端 网址:Git Windows客户端。选择Standalone Installer(单独安装程序),并点击64bit Git for Windows Setup(64位Git for Windows安装程序)进行下载。然后一路默认选…...
隨筆20250519 Async+ThreadPoolTaskExecutor⾃定义线程池进阶实战
1.ThreadPoolTaskExecutor线程池 有哪⼏个重要参数, 什么时候会创建线程 1.核心綫程數 查看核心綫程數目是否已經滿,未滿 創建一條綫程 執行任務,已滿負責執行第二部 2.阻塞隊列 查看阻塞隊列是否已經滿,未滿將任務加入阻塞隊列&…...
YoloV8改进策略:卷积篇|风车卷积|即插即用
文章目录 论文信息论文翻译摘要引言相关研究红外搜索与跟踪检测和分割网络红外搜索与跟踪数据集的损失函数红外搜索与跟踪数据集方法风车形卷积(PConv)基于尺度的动态损失SIRST - UAVB数据集实验实验设置与其他方法的比较多模型上的消融实验结论致谢代码改进方法测试结果总结…...
HGDB中如何为表增加自增主键
文章目录 环境文档用途详细信息 环境 系统平台:N/A 版本:4.5 文档用途 本文主要介绍在瀚高数据库中如何为表增加新主键,便于业务改造和查询。 实现原理:通过添加序列自增字段和唯一约束实现。 详细信息 可以根据数字类型来设…...
升级mysql (rpm安装)
#备份以防万一 备份配置文件: /etc/my.cnf.d/server.cnf 备份数据: mysqldump -u your_username -p --all-databases > all_databases.sql #停止 systemctl stop mysql #卸载旧版 yum remove mariadb #安装新版( 通过yum安装报错,死活安装不了,只能rpm安装) 下载地址…...
ALTER COLLATION使用场景
ALTER COLLATION 是 SQL 中用于修改字符集排序规则(Collation)的操作。排序规则定义了字符数据的比较和排序方式,包括字母顺序、大小写敏感性、重音符号处理等。ALTER COLLATION 的使用场景主要集中在需要调整数据库或表的字符集排序规则时。…...
Python实例题:Python 实现简易 Shell
目录 Python实例题 题目 代码实现 功能说明 基本命令执行: 内置命令: 环境变量: 管道: 重定向: 信号处理: 使用方法 注意事项 Python实例题 题目 Python 实现简易 Shell 代码实现 import o…...