Qt菜单工具栏和状态栏

本文介绍了Qt中的QMenuBar,QAction和QMenu类,它们在构建桌面应用程序菜单系统中的作用,包括如何创建、组织菜单和工具栏,以及如何响应用户交互。着重讲解了addAction和addMenu方法的使用以及信号如triggered和hovered的应用。
摘要由CSDN通过智能技术生成

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 类中,用来添加一个菜单或子菜单。

#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

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值