当前位置: 首页 > news >正文

qt QMenuBar详解

1、概述

QMenuBar是Qt框架中用于创建菜单栏的类,它继承自QWidget。QMenuBar通常位于QMainWindow对象的标题栏下方,用于组织和管理多个QMenu(菜单)和QAction(动作)。菜单栏提供了一个水平排列的容器,用于放置下拉菜单,这些菜单项可以帮助用户更方便地访问应用程序的各种功能。

2、重要方法
  • addMenu():向菜单栏中添加一个菜单。可以添加带有标题或图标的QMenu对象。
  • addAction():向菜单中添加一个动作。这些动作可以是简单的文本按钮,也可以与特定的快捷键或图标相关联。
  • setCornerWidget():在菜单栏的第一个菜单项左侧或最后一个菜单项右侧设置一个小部件。
  • cornerWidget():返回当前在菜单栏角落位置的小部件。
  • insertMenu():在指定动作之前插入一个菜单。
  • insertSeparator():在指定动作之前插入一个分隔符。
  • actionAt():返回指定位置处的QAction对象。
  • actionGeometry():返回指定QAction对象的几何形状。

3、重要信号
  • triggered(QAction *action):当鼠标单击触发属于该菜单栏的菜单中的动作时,会发出此信号。这个信号对于将菜单操作连接到槽函数非常有用。
  • hovered(QAction *action):当一个菜单动作被高亮时,这个信号被发出。
#include <QApplication>  
#include <QMainWindow>  
#include <QMenuBar>  
#include <QMenu>  
#include <QAction>  
#include <QFileDialog>  
#include <QDebug>  class MainWindow : public QMainWindow {  Q_OBJECT  public:  MainWindow(QWidget *parent = nullptr) : QMainWindow(parent) {  // 创建菜单栏  QMenuBar *menuBar = new QMenuBar(this);  this->setMenuBar(menuBar);  // 创建菜单和动作  QMenu *fileMenu = menuBar->addMenu("文件(&F)");  QAction *openAct = new QAction("打开(&O)", this);  connect(openAct, &QAction::triggered, this, &MainWindow::openFile);  fileMenu->addAction(openAct);  QAction *newAct = new QAction("新建(&N)", this);  fileMenu->addAction(newAct);  QAction *saveAct = new QAction("保存(&S)", this);  fileMenu->addAction(saveAct);  fileMenu->addSeparator();  QAction *exitAct = new QAction("退出(&X)", this);  connect(exitAct, &QAction::triggered, qApp, &QApplication::quit);  fileMenu->addAction(exitAct);  QMenu *editMenu = menuBar->addMenu("编辑(&E)");  QAction *copyAct = new QAction("复制", this);  editMenu->addAction(copyAct);  QAction *selectAllAct = new QAction("全选", this);  editMenu->addAction(selectAllAct);  }  private slots:  void openFile() {  QFileDialog::getOpenFileName(this, "打开文件");  }  
};  int main(int argc, char *argv[]) {  QApplication app(argc, argv);  MainWindow window;  window.show();  return app.exec();  
}  

觉得有帮助的话,打赏一下呗。。

           

http://www.lryc.cn/news/475241.html

相关文章:

  • ESP32的下的蓝牙应用笔记(1)——Beacon蓝牙信标
  • 控制台安全内部:创新如何塑造未来的硬件保护
  • 如何选择适合自己的 Python IDE
  • Matlab车牌识别课程设计报告模板(附源代码)
  • kubesphere jenkins自动重定向 http://ks-apiserver:30880/oauth/authorize
  • Vue3访问页面时自动获取数据
  • go语言回调函数的使用
  • 区块链学习笔记(一)
  • 解决QT打包发布App Store时(90238)错误
  • 使用Vite构建现代化前端应用
  • PyQt入门指南三十八 QWizard向导组件
  • 【数学二】线性代数-矩阵-矩阵的概念及运算
  • 近期学习前端的心得
  • qt QMenu详解
  • HTMLCSS:旋转的动态卡片
  • 通过自然语言表达你的想法。GitHub Spark让任何人都能使用人工智能,为自己创建软件...
  • c++的list类
  • uniapp数据缓存
  • HarmonyOS-权限管理
  • Github 2024-11-02 Rust开源项目日报 Top10
  • 修改HarmonyOS鸿蒙图标和名字,打包后安装到真机,应用图标丢失变成透明,修改名字也不生效,还是默认的labeL解决方案教程
  • unreal engine5动画重定向
  • 蓝桥杯练习笔记(二十-日期问题)
  • jenkins 构建报错 mvn: command not found
  • Vue computed watch
  • 【java】java的基本程序设计结构06-运算符
  • 数据建模圣经|数据模型资源手册卷3,数据建模最佳实践
  • Kafka相关知识点(上)
  • network HCIE认证
  • 造纸粉体分散机、改性包覆机、改性打散机