Qt菜单工具栏和状态栏

QMenuBar

接口介绍

QAction

  • 定义QAction 是一个独立于具体界面元素的抽象动作表示。它封装了一个用户界面动作(比如点击命令),通常与一个菜单项、工具栏按钮或快捷键相关联。
  • 用途 :你可以将 QAction 视为一个可执行的命令,它可以被触发,比如用户点击了菜单项或按钮。
  • 特点QAction 可以被添加到菜单、工具栏或者绑定到快捷键。它包含了动作的文本、图标、快捷键等信息,并发出信号(如 triggered),以便在动作被激活时执行相关的逻辑。

QMenu

  • 定义QMenu 是一个代表应用程序菜单中的单个菜单的对象。它可以包含多个 QAction 对象,以及子菜单(也是 QMenu 对象)。
  • 用途:它用于创建下拉菜单,用户可以从中选择多个选项或命令。
  • 特点 :每个 QMenu 对象都可以包含多个动作(QAction 对象)和/或更多子菜单,它负责管理这些选项的显示和用户与之交互的逻辑。

QMenuBar

  • 定义QMenuBar 是代表窗口顶部菜单栏的对象。它可以包含多个 QMenu 对象。
  • 用途 :在桌面应用程序中,QMenuBar 通常位于窗口的顶部,作为主要的命令和功能入口点。
  • 特点QMenuBar 可以容纳多个 QMenu 对象,每个 QMenu 对应于菜单栏中的一个菜单。它管理这些菜单的布局和显示。

协同工作

这三个类通常一起使用来构建用户界面:

  • QAction 代表一个具体的动作或命令。
  • QMenu 用于组织多个 QAction,形成一个下拉菜单。
  • QMenuBar 则在窗口顶部展示多个 QMenu,形成完整的菜单栏。

addAction

addAction 用于 QMenuQToolBar 类中,用来添加动作(QAction 对象)到一个菜单或工具栏中。

addMenu

addMenu 用于 QMenuBarQMenu 类中,用来添加一个菜单或子菜单。

cpp 复制代码
#include "MenuWidget.h"
#include<qmenu.h>

MenuWidget::MenuWidget(QWidget *parent)
	: QMainWindow(parent)
{
	ui.setupUi(this);
	//插入菜单栏
	QMenuBar* m = new QMenuBar(this);
	m->resize(width(), m->height());
	//一级菜单
	QMenu* m1 = m->addMenu(QStringLiteral("菜单1"));
	//二级菜单
	QAction* a1 = m1->addAction(QStringLiteral("二级菜单1.1"));
	QAction* a2 = m1->addAction(QStringLiteral("二级菜单1.2"));
	QAction* a3 = m1->addAction(QStringLiteral("二级菜单1.3"));
	QMenu *m14= m1->addMenu(QStringLiteral("二级菜单1.3"));
	//三级菜单
	m14->addAction(QStringLiteral("三级菜单1.4.1"));

	QMenu* m2 = m->addMenu(QStringLiteral("菜单2"));
	QMenu* m3 = m->addMenu(QStringLiteral("菜单3"));
}

MenuWidget::~MenuWidget()
{}

信号

triggered(): 这是最常用的信号,当动作被触发时发出,无论是通过用户交互(如点击菜单项或工具栏按钮)还是程序调用

hovered(): 当用户将鼠标悬停在与动作相关联的界面元素上时,发出这个信号

按钮

快捷键设置

QToolBar

QMianWindow

相关推荐
014-code3 小时前
订单超时取消与库存回滚的完整实现(延迟任务 + 状态机)
java·开发语言
妙为3 小时前
银河麒麟V4下编译Qt5.12.12源码
c++·qt·国产化·osg3.6.5·osgearth3.2·银河麒麟v4
lly2024063 小时前
组合模式(Composite Pattern)
开发语言
游乐码3 小时前
c#泛型约束
开发语言·c#
Dontla4 小时前
go语言Windows安装教程(安装go安装Golang安装)(GOPATH、Go Modules)
开发语言·windows·golang
chushiyunen4 小时前
python rest请求、requests
开发语言·python
铁东博客4 小时前
Go实现周易大衍筮法三变取爻
开发语言·后端·golang
baidu_huihui4 小时前
在 CentOS 9 上安装 pip(Python 的包管理工具)
开发语言·python·pip
南 阳4 小时前
Python从入门到精通day63
开发语言·python
lbb 小魔仙4 小时前
Python_RAG知识库问答系统实战指南
开发语言·python