import sys from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import *
QMenuBar 要添加在 QMainWindow 窗口中,同样我们要继承一份 QMainWindow 类,然后在派生的类中调用 menuBar() 来创建菜单栏(MenuBar),在菜单栏中你需要创建一个主菜单 include #include CMainWindow::CMainWindow(QWidget *parent) : QMainWindow(parent) { // 创建一个菜单栏 QMenuBar
1.2 QMenuBar 菜单栏 QMenuBar 是 Qt 中用于创建菜单栏的组件,它提供了一种方便的方式来组织和管理应用程序的菜单。 1.2.1 主要特点 菜单项: QMenuBar 主要由菜单项组成,每个菜单项代表一个功能或操作。菜单项可以包含子菜单,形成层级关系,用于更好地组织功能。 上下文菜单: QMenuBar 也可以用作上下文菜单(右键菜单),在特定区域点击右键时显示相应的菜单项。 以下是 QMenuBar 类的一些常用方法的说明和概述,以表格形式列出: 方法 描述 QMenuBar(QWidget *parent = nullptr) 构造函数,创建一个 QMenuBar 对象。 这些方法提供了对 QMenuBar 进行菜单管理、外观设置以及与其他小部件的交互等方面的控制。你可以根据具体需求使用这些方法,定制菜单栏的外观和行为。
#include "mainwindow.h"#include "ui_mainwindow.h"#include <iostream>#include <QMenuBar>#include <QToolBar #include "mainwindow.h"#include "ui_mainwindow.h"#include <iostream>#include <QMenuBar>#include <QToolBar #include "mainwindow.h"#include "ui_mainwindow.h"#include <iostream>#include <QMenuBar>#include <QToolBar *MainMenu = new QMenuBar(this); this->setMenuBar(MainMenu); // 1.定义父级菜单 QMenu *EditMenu #include "mainwindow.h"#include "ui_mainwindow.h"#include <QMenuBar>#include <QToolBar>#include <iostream
1.2 QMenuBar 菜单栏QMenuBar 是 Qt 中用于创建菜单栏的组件,它提供了一种方便的方式来组织和管理应用程序的菜单。 1.2.1 主要特点菜单项: QMenuBar 主要由菜单项组成,每个菜单项代表一个功能或操作。菜单项可以包含子菜单,形成层级关系,用于更好地组织功能。 上下文菜单: QMenuBar 也可以用作上下文菜单(右键菜单),在特定区域点击右键时显示相应的菜单项。 QMenuBar(QWidget *parent = nullptr) 构造函数,创建一个 QMenuBar 对象。 这些方法提供了对 QMenuBar 进行菜单管理、外观设置以及与其他小部件的交互等方面的控制。你可以根据具体需求使用这些方法,定制菜单栏的外观和行为。
#include "mainwindow.h" #include "ui_mainwindow.h" #include <iostream> #include <QMenuBar> #include ui->setupUi(this); // ---------------------------------------------------------- // 创建菜单栏 QMenuBar #include "mainwindow.h" #include "ui_mainwindow.h" #include <iostream> #include <QMenuBar> #include #include "mainwindow.h" #include "ui_mainwindow.h" #include <iostream> #include <QMenuBar> #include *MainMenu = new QMenuBar(this); this->setMenuBar(MainMenu); // 1.定义父级菜单 QMenu
一、Qt 菜单栏核心概念:认识 QMenuBar 与菜单体系 在深入代码之前,我们首先要理清 Qt 菜单栏的核心组成部分。 2.2 方式二:手动动态创建 QMenuBar 对象 如果需要对菜单栏进行更灵活的控制(比如自定义父对象、设置特殊样式等),可以手动在堆上创建 QMenuBar 对象。 在堆上动态创建菜单栏对象,指定主窗口为父对象 QMenuBar *menuBar = new QMenuBar(this); // 2. 菜单通过 QMenu 类创建,然后通过 QMenuBar 的 addMenu () 函数添加到菜单栏中。 QMenuBar::addMenu () 函数:将创建好的菜单添加到菜单栏中,支持按添加顺序排列菜单。
#include "mainwindow.h" #include "ui_mainwindow.h" #include <QMenuBar> #include <QMenu> #include <QToolBar CustomContextMenu); // 隐藏菜单栏上的右击菜单 this->setContextMenuPolicy(Qt::NoContextMenu); // 创建基础顶部菜单 QMenuBar IconMode)属性即可实现图标显示,我们按照如上代码简单改进即可,代码如下: #include "mainwindow.h" #include "ui_mainwindow.h" #include <QMenuBar CustomContextMenu); // 隐藏菜单栏上的右击菜单 this->setContextMenuPolicy(Qt::NoContextMenu); // 创建基础顶部菜单 QMenuBar
menubar() 函数原型如下: QMenuBar* menuBar() const (2)方式二 – 在堆上创建 如果是获取到已经存在的 QMenuBar,那么这里的设置就是 自己替换自己,仍然在对象树上 但如果勾选了自动生成 ui 文件(Qt 已经给我们生成了一个 QMenuBar),那么上述代码就会引起内存泄漏 程序自己已经创建好了一个 QMenuBar,当设置新的 QMenuBar 进来时,就会导致旧的 先创建一个菜单栏 QMenuBar* menuBar = new QMenuBar(); this->setMenuBar(menuBar); // 2. 四、添加快捷键 一般来说菜单都会有对应的快捷键,方便我们更好操作,因此我们也可以 在设置菜单的 title 时,在字母前加 & 符号 示例: QMenuBar* menuBar = new QMenuBar QMenuBar* menuBar = new QMenuBar(); this->setMenuBar(menuBar); QMenu* menuParent = new QMenu("父菜单")
通过QMainWindow你可以添加自己的QToolBars、QDockWidgets、QMenuBar、QStatusBar等。 ? 代码: import sys from PyQt5.QtWidgets import QMainWindow, QApplication, QMenuBar, QAction, qApp, QTextEdit
#endif // MAINWINDOW_H //MainWindow.cpp #include "mainwindow.h" //创建菜单栏,工具栏,状态栏应当包含的头文件 #include <QMenuBar QMenuBar *menu_bar = new QMenuBar(this); //创建一个菜单栏 this->setMenuBar(menu_bar);
1.2、 菜单栏类创建菜单栏 在QMainWindow对象的标题栏下方,水平的QMenuBar被保留显示QMenu对象。QMenu类提供了一个可以添加到菜单栏的小控件,也用于创建上下文菜单和弹出菜单。 PyQt API提供了createPopupMenu()函数创建一个弹出菜单;menuBar()函数用于返回主窗口的QMenuBar对象; addMenu()函数可以将菜单添加到菜单栏中;通过addAction 在设计菜单系统时使用的一些重要方法如下表所示: 通个示例了解QMenuBar、QMenu和QAction菜单栏类,示例效果如下所示: 示例中,顶层窗口必须是QMainWindow对象,才可以引用QMenuBar
a.exec(); } //MainWindow.cpp文件 #include "mainwindow.h" //创建菜单栏,工具栏,状态栏,文本框,浮动窗口应当包含的头文件 #include <QMenuBar QMenuBar *menu_bar = new QMenuBar(this); //创建一个菜单栏 this->setMenuBar(menu_bar);
#include "mainwindow.h"#include "ui_mainwindow.h"#include <QMenuBar>#include <QMenu>#include <QToolBar CustomContextMenu); // 隐藏菜单栏上的右击菜单 this->setContextMenuPolicy(Qt::NoContextMenu); // 创建基础顶部菜单 QMenuBar :IconMode)属性即可实现图标显示,我们按照如上代码简单改进即可,代码如下:#include "mainwindow.h"#include "ui_mainwindow.h"#include <QMenuBar CustomContextMenu); // 隐藏菜单栏上的右击菜单 this->setContextMenuPolicy(Qt::NoContextMenu); // 创建基础顶部菜单 QMenuBar
(); }; #endif // POINTCLOUD_H pointcloud.cpp代码: #include "pointcloud.h" #include<QMenu> #include<QMenuBar point_cloud 点云数据处理软件 版本1.0 ");//设置软件主题标题 this->resize(1500,800); //菜单栏 QMenuBar *mBar = menuBar(); QMenuBar*mHelp = menuBar(); //添加菜单 QMenu*pFile = mBar->addMenu("
/QHBoxLayout> #include <QtWidgets/QHeaderView> #include <QtWidgets/QMainWindow> #include <QtWidgets/QMenuBar QPushButton *btn_Battery; QVBoxLayout *vLayout_Battery; QHBoxLayout *hLayout_StatusBar2; QMenuBar hLayout_StatusBar2); MainSatusTestClass->setCentralWidget(centralWidget); menuBar = new QMenuBar
创建菜单示例: QMenuBar mb= menuBar(); //返回菜单栏,如果菜单栏没有创建,则返回一个空的菜单栏 QMenu* menu= new QMenu("File(&F)", QMenuBar ); //(&F):表示添加alt+F键快捷键打开这个菜单 QAction* action= new
{ ui->setupUi(this); //设置窗口名 this->setWindowTitle("我的word文件"); //创建菜单栏,将菜单栏设置到窗口当中 QMenuBar * mb = new QMenuBar(this); this->setMenuBar(mb); //设置菜单名,将菜单设置到菜单栏中 QMenu* m = new QMenu("文件
3.QMenuBar内存泄露问题 如果ui已经自动生成了menubar,我们再次生成一个新的菜单栏,而且把新创建的菜单栏增加到对象树上。
"label_2") MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtWidgets.QMenuBar pushButton") MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtWidgets.QMenuBar