Qt - QMainWindow

QMainWindow菜单栏和工具栏

QMainWindow是一个为用户提供主窗口程序的类,包含一个菜单栏(menu bar).
多个工具栏(tool bars).多个锚接部件(dock widgets).一个状态栏(status bar)
及一个中心部件(central widget),是许多应用程序的基础,如文本编辑器,图片编辑器等。
在这里插入图片描述

创建项目时选择MainWindow基类,去掉生成ui选项

#include "mainwindow.h"
#include "QMenuBar"
#include "QToolBar"
#include "QPushButton"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    
    
    this->resize(600,400);

    //菜单栏创建
    QMenuBar *bar=menuBar();

    //将菜单栏放入到窗口中
    setMenuBar(bar);

    //创建文件菜单
   QMenu *fileMenu=bar->addMenu("文件(F)");
        //创建菜单项
        fileMenu->addAction("新建");

        //添加分割线
        fileMenu->addSeparator();

        QAction *openAction=fileMenu->addAction("打开");

    //创建编辑菜单
   QMenu *editMenu=bar->addMenu("编辑(E)");
   editMenu->addAction("undo");

    //创建构建菜单
   QMenu *buildMenu=bar->addMenu("构建(B)");
   buildMenu->addAction("构建所有");

   //创建工具栏 可以有多个工具栏
   QToolBar *toolBar=new QToolBar(this);
   //把工具栏放在窗口中 默认位置 左边
   this->addToolBar(Qt::LeftToolBarArea,toolBar);
   //设置工具栏允许停靠范围
   toolBar->setAllowedAreas(Qt::LeftToolBarArea | Qt::RightToolBarArea);

   //设置浮动
   toolBar->setFloatable(false);

   //设置移动(总开关) 不能移动工具栏
   toolBar->setMovable(false);

   //工具栏设置内容
   toolBar->addAction("新建");

   //工具栏添加分割线
   toolBar->addSeparator();

   //也可以使用菜单栏的子项返回值
   toolBar->addAction(openAction);

   //工具栏中添加控件
   QPushButton *btn=new QPushButton("打开文件",this);
   toolBar->addWidget(btn);

}

状态栏 铆接部件 中心部件

#include "mainwindow.h"
#include "QStatusBar"
#include "QLabel"
#include "QDockWidget"
#include "QTextEdit"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    
    
    this->resize(600,400);
    //状态栏最多只有一个
    QStatusBar *stBar=statusBar();

    //设置到窗口中
    this->setStatusBar(stBar);

    //放标签控件
    QLabel* label=new QLabel("提示信息",this);
    stBar->addWidget(label);

    QLabel* label2=new QLabel("右侧提示",this);
    stBar->addPermanentWidget(label2);

    //铆接部件(浮动窗口) 可以有多个
    QDockWidget *dockWidget=new QDockWidget("浮动",this);
    addDockWidget(Qt::BottomDockWidgetArea,dockWidget);
    //设置后期停靠区域 只允许上下
    dockWidget->setAllowedAreas(Qt::TopDockWidgetArea | Qt::BottomDockWidgetArea);


    //设置中心部件
    QTextEdit *edit=new QTextEdit(this);

    //设置中间组件
    setCentralWidget(edit);
}

菜单项功能触发

 //创建菜单栏
    QMenuBar *bar=menuBar();
    setMenuBar(bar);

    //创建退出菜单项
    QMenu *startMenu=bar->addMenu("开始");
    
  //退出的实现
    connect(quitAction,&QAction::triggered,[=](){
    
    
       this->close();
    });

猜你喜欢

转载自blog.csdn.net/qq_41490873/article/details/108448649
今日推荐