【Qt】05-菜单栏

发布于:2025-02-10 ⋅ 阅读:(35) ⋅ 点赞:(0)


前言


一、创建文件

这里和之前一样。
在这里插入图片描述
主要是后面选择,带菜单栏的窗口(PC端常用)QMainWindow在这里插入图片描述
最终在这里插入图片描述
主要是菜单栏、工具栏、状态栏、核心控件(文本编辑框)、浮动窗口

看的QMainWindow的public-functions栏可以看共有函数,是他提供的api。

二、菜单栏 QMenuBar

需要包含头文件

#include <QMenuBar>
#include <QMenu>

创建菜单
在这里插入图片描述

2.1 示例代码

过程全在注释里了,接下来是mymainwindow.cpp的内容

#include "mymainwindow.h"
#include <QMenuBar>
#include <QMenu>
#include <QAction>
#include <QDebug>
#include <QToolBar>
#include <QPushButton>

myMainWindow::myMainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    QMenuBar *mBar = menuBar();                  // 添加菜单栏
    QMenu *pFile = mBar->addMenu("文件");         // 菜单内容
    QAction *pNew = pFile->addAction("新建");     // 菜单项

    connect(pNew,&QAction::triggered,
            [=]()
            {
                qDebug()<<"新建被按下";
            }
            );
    pFile->addSeparator();                      // 增加分割线
    QAction *pOpen= pFile->addAction("打开");
}

myMainWindow::~myMainWindow()
{

}

2.2 运行结果

运行结果不展示了,放分析助于理解吧。
在这里插入图片描述

三、工具栏 QToolBar

在上一个的基础上增加,这一部分。

3.1 运行代码

在这里插入图片描述

3.2 结果分析

在这里插入图片描述

四、状态栏 QStatusBar

4.1 运行代码

在这里插入图片描述

4.2 运行结果

在这里插入图片描述

五、文本编辑框 QTextEdit

5.1 运行代码

在这里插入图片描述

5.2 运行结果

在这里插入图片描述

六、浮动窗口 addDockWidget

像这种有两种方法的,需要依赖帮助文档。
在这里插入图片描述
但是摁F1,却显示不出内容
在这里插入图片描述
需要将参数补齐,再进行跳转。

在这里插入图片描述
有点看不懂洋文。。。。。

QMainWindow::addDockWidget(Qt::DockWidgetArea area, QDockWidget *dockwidget)
  1. 第一个参数通常是指定停靠部件的位置,是一个枚举值,例如在 Qt 中,有
    Qt::LeftDockWidgetArea、Qt::RightDockWidgetArea、Qt::TopDockWidgetArea、Qt::BottomDockWidgetArea
    等,用来确定该停靠部件最初应该停靠在主窗口的哪个区域。
  2. 第二个参数是要添加的实际停靠部件的对象指针

6.1 运行代码

在这里插入图片描述

6.2 运行结果

在这里插入图片描述
在这里插入图片描述


总结

本篇总结放完整代码

#include "mymainwindow.h"
#include <QMenuBar>
#include <QMenu>
#include <QAction>
#include <QDebug>
#include <QToolBar>
#include <QPushButton>
#include <QStatusBar>
#include <QLabel>
#include <QTextEdit>
#include <QDockWidget>

myMainWindow::myMainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    QMenuBar *mBar = menuBar();                  // 添加菜单栏
    QMenu *pFile = mBar->addMenu("文件");         // 菜单内容
    QAction *pNew = pFile->addAction("新建");     // 菜单项

    connect(pNew,&QAction::triggered,
            [=]()
            {
                qDebug()<<"新建被按下";
            }
            );
    pFile->addSeparator();                      // 增加分割线
    QAction *pOpen= pFile->addAction("打开");

    // 工具栏项,菜单的快捷方式
    QToolBar *toolBar = addToolBar("toolBar");
    toolBar->addAction(pNew);           // 工具栏增加快捷方式

    QPushButton *button1 = new QPushButton(this);
    button1->setText("OHO");            // 之后可以用图片图标,目前只有颜表情代替
    // 添加小控件
    toolBar->addWidget(button1);
    connect(button1,&QPushButton::clicked,
            [=]()
            {
                button1->setText("123");
            }
            );

    // 状态栏
    QStatusBar *sBar = statusBar();
    QLabel *label = new QLabel(this);
    label->setText("Normal");
    sBar->addWidget(label);
    sBar->addWidget(new QLabel("status 2",this));   // addWidget从左往右添加
    sBar->addPermanentWidget(new QLabel("status 3",this)); // 从左往右添加

    // 核心控件--文本编辑框
    QTextEdit *textEdit = new QTextEdit(this);
    setCentralWidget(textEdit);
    // 浮动窗口
    QDockWidget *dock = new QDockWidget(this);
    addDockWidget(Qt::LeftDockWidgetArea,dock);  // 初始状态,后面是可以继续浮动的
    QTextEdit *textEdit_1 = new QTextEdit(this);    // 为浮动窗口增加一下东西
    dock->setWidget(textEdit_1);
}

myMainWindow::~myMainWindow()
{

}


网站公告

今日签到

点亮在社区的每一天
去签到