做菜单
- 前言
- 一、创建文件
- 二、菜单栏 QMenuBar
- 2.1 示例代码
- 2.2 运行结果
 
- 三、工具栏 QToolBar
- 3.1 运行代码
- 3.2 结果分析
 
- 四、状态栏 QStatusBar
- 4.1 运行代码
- 4.2 运行结果
 
- 五、文本编辑框 QTextEdit
- 5.1 运行代码
- 5.2 运行结果
 
- 六、浮动窗口 addDockWidget
- 6.1 运行代码
- 6.2 运行结果
 
- 总结
前言
一、创建文件
这里和之前一样。
 
 主要是后面选择,带菜单栏的窗口(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)
- 第一个参数通常是指定停靠部件的位置,是一个枚举值,例如在 Qt 中,有
 Qt::LeftDockWidgetArea、Qt::RightDockWidgetArea、Qt::TopDockWidgetArea、Qt::BottomDockWidgetArea
 等,用来确定该停靠部件最初应该停靠在主窗口的哪个区域。
- 第二个参数是要添加的实际停靠部件的对象指针。
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()
{
}















![[论文阅读] (36)CS22 MPSAutodetect:基于自编码器的恶意Powershell脚本检测模型](https://i-blog.csdnimg.cn/direct/b9acd4b0526f4e4e90cfbe92f464f2b0.jpeg#pic_center)



