QT学习笔记—应用程序窗口

在这里插入图片描述
QMainWidown类窗口框架一般包含以下组件:

1、菜单栏(QMenuBar),一个主窗口只能有一个
2、工具栏(QToolBar),可以有多个
3、状态栏(QStatusBar),一个主窗口只能有一个
4、中心部件(Central Widget),一个主窗口只能有一个
5、Dock部件(QDockWidget,铆接部件)

菜单栏(QMenuBar)

1、创建菜单栏

//    QMenuBar *bar = menuBar(); // 创建菜单栏,只有一个
QMenuBar *bar = new QMenuBar;
this->setMenuBar(bar);    //设置菜单栏到窗口中

2、添加菜单栏

  QMenu *fileMenu = bar->addMenu("文件");
  QMenu *editMenu = bar->addMenu("编辑");
  QMenu *viewMenu = bar->addMenu("查看");
  QMenu *goMenu = bar->addMenu("前往");
  QMenu *bookMarkMenu = bar->addMenu("书签");
  QMenu *helpMenu = bar->addMenu("帮助");

3、添加菜单栏每一栏的选项

//添加文件菜单栏添加选项
QAction *newAction = fileMenu->addAction("新建");
QAction *openFileAction = fileMenu->addAction("打开");
//添加分割线
fileMenu->addSeparator();
QAction *closeFileAction = fileMenu->addAction("关闭")

工具栏( QToolBar)

1、创建工具栏

 //创建工具栏
QToolBar *tBar = new QToolBar(this);
//将工具栏添加到窗口中,默认添加到左边
addToolBar(Qt::LeftToolBarArea, tBar);
//设置允许左边和右边停靠
tBar->setAllowedAreas(Qt::LeftToolBarArea | Qt::RightToolBarArea);

2、向工具栏添加选项

  //向工具栏添加选项
QAction *contentToolBar = tBar->addAction("内容");
//添加分割线
tBar->addSeparator();
QAction *indexToolBar = tBar->addAction("索引");
tBar->addSeparator();
QAction *searchToolBar = tBar->addAction("查找");

状态栏(QStatusBar)

1、创建状态栏

//创建状态栏
QStatusBar *statBar = new QStatusBar(this);
//将状态栏放达到窗口中
setStatusBar(statBar);

2、为状态栏添加内容

QLabel *label1 = new QLabel("字数", this);
//将标签放入状态栏
statBar->addWidget(label1);
QLabel *label2 = new QLabel("页数", this);
statBar->addPermanentWidget(label2);

铆接部件(浮动窗口)

窗口可以拖动到任意位置,甚至可以离开主窗口

//铆接部件(浮动窗口) 可以有很多个
QDockWidget *dock = new QDockWidget("铆接部件", this);
this->addDockWidget(Qt::BottomDockWidgetArea, dock);

设置核心部件

//设置核心部件,只能有一个,这里设置为一边可编辑的Text
QTextEdit *editText = new QTextEdit(this);
setCentralWidget(editText);

完整代码

#include "mainwindow.h"
#include <QMenuBar>
#include <QMenu>
#include <QToolBar>
#include <QAction>
#include <QStatusBar>
#include <QLabel>
#include <QTextEdit>
#include <QDockWidget>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    
    
    setWindowTitle("Qt助手");
    this->resize(600, 400);

//    QMenuBar *bar = menuBar(); // 创建菜单栏,只有一个
    QMenuBar *bar = new QMenuBar;

    this->setMenuBar(bar);    //设置菜单栏到窗口中
//    setMenuBar(bar);
    QMenu *fileMenu = bar->addMenu("文件");
    QMenu *editMenu = bar->addMenu("编辑");
    QMenu *viewMenu = bar->addMenu("查看");
    QMenu *goMenu = bar->addMenu("前往");
    QMenu *bookMarkMenu = bar->addMenu("书签");
    QMenu *helpMenu = bar->addMenu("帮助");

    //添加文件菜单栏添加选项
    QAction *newAction = fileMenu->addAction("新建");
    QAction *openFileAction = fileMenu->addAction("打开");
    //添加分割线
    fileMenu->addSeparator();
    QAction *closeFileAction = fileMenu->addAction("关闭");

    //创建工具栏
    QToolBar *tBar = new QToolBar(this);
    //将工具栏添加到窗口中,默认添加到左边
    addToolBar(Qt::LeftToolBarArea, tBar);
    //设置允许左边和右边停靠
    tBar->setAllowedAreas(Qt::LeftToolBarArea | Qt::RightToolBarArea);

    //向工具栏添加选项
    QAction *contentToolBar = tBar->addAction("内容");
    //添加分割线
    tBar->addSeparator();
    QAction *indexToolBar = tBar->addAction("索引");
    tBar->addSeparator();
    QAction *searchToolBar = tBar->addAction("查找");

    //创建状态栏
    QStatusBar *statBar = new QStatusBar(this);
    //将状态栏放达到窗口中
    setStatusBar(statBar);

    QLabel *label1 = new QLabel("字数", this);
    //将标签放入状态栏
    statBar->addWidget(label1);
    QLabel *label2 = new QLabel("页数", this);
    statBar->addPermanentWidget(label2);

    //铆接部件(浮动窗口) 可以有很多个
    QDockWidget *dock = new QDockWidget("铆接部件", this);
    this->addDockWidget(Qt::BottomDockWidgetArea, dock);

    //设置核心部件,只能有一个,这里设置为一边可编辑的Text
    QTextEdit *editText = new QTextEdit(this);
    setCentralWidget(editText);
}

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

猜你喜欢

转载自blog.csdn.net/qq_36413982/article/details/107754237