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

相关推荐
水云桐程序员1 小时前
C++可以写手机应用吗
开发语言·c++·智能手机
测试员周周1 小时前
【AI测试智能体】为什么传统测试方法对智能体失效?
开发语言·人工智能·python·功能测试·测试工具·单元测试·测试用例
RSTJ_16252 小时前
PYTHON+AI LLM DAY THREETY-NINE
开发语言·人工智能·python
hellokandy2 小时前
Qt QCache 使用指南
qt·lru·qpair·qcache
小许同学记录成长2 小时前
全景扫描瀑布图实现
qt
赏金术士2 小时前
Kotlin 从入门到进阶 之函数模块(核心基础)(二)
android·开发语言·kotlin
加号34 小时前
【Qt】 应用程序发布:依赖库拷贝与部署指南
开发语言·qt
('-')5 小时前
八股复习2:Java Array list和Linked list
java·开发语言
小黄人软件5 小时前
C++读写编辑CSV文件示例源码 用于数据导入导出,比Excel好使
开发语言·c++·excel
郭涤生5 小时前
C++各个版本的性能和安全性总结
开发语言·c++