QT学习之路——菜单栏、工具栏、状态栏、锚接部件、核心部件

菜单栏 最多有一个

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

setMenuBar(bar)   //显示菜单栏

QMenu * fileMenu = bar->addMenu("文件") //创建菜单

QAction  *newAction = fileMenu0>addAction("新建"); //创建菜单项

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

工具栏 可以有多个

QToolBar *toolbar = new QToolBar(this);

addToolBar(默认停靠区域,toolbar); Qt ::LeftToolBarArea

设置后期停靠区域、设置浮动窗口、设置是否可移动

状态栏  最多有一个

QStatusBar * stBar = statusBar();

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

stBar->addWidget(label); //放左侧信息

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);

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QMenuBar>
#include <QDebug>
#include <QToolBar>
#include <QPushButton>
#include <QStatusBar>
#include <QLabel>
#include <QDockWidget>
#include <QTextEdit>
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    //重置窗口大小
    resize(600,400);
    //菜单栏
    QMenuBar *bar = menuBar();
    //显示菜单栏
    setMenuBar(bar);
    //创建菜单
    QMenu * fileMenu = bar->addMenu("文件");
    QMenu * editMenu = bar->addMenu("编辑");
    //创建菜单项
    QAction * newAction = fileMenu->addAction("新建");
    //添加分隔符
    fileMenu->addSeparator();

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

    //工具栏:可以有多个
    QToolBar * toolBar = new QToolBar(this);
    addToolBar(Qt::LeftToolBarArea, toolBar);

    //设置允许左右停靠
    toolBar->setAllowedAreas(Qt::LeftToolBarArea | Qt::RightToolBarArea);
    //设置浮动
    toolBar->setFloatable(false);
    //设置移动(总开关,如果关闭移动,浮动停靠都无法使用)
    toolBar->setMovable(false);
    //设置工具栏内容
    toolBar->addAction(newAction);
    toolBar->addSeparator();
    toolBar->addAction(openAction);
    //工具栏中添加控件
    QPushButton *btn = new QPushButton("按钮", this);
    toolBar->addWidget(btn);


    //状态栏 最多只有一个
    QStatusBar * stBar = statusBar();
    //设置到窗口
    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);
}

MainWindow::~MainWindow()
{
    delete ui;
}

总结

只能有一个的 ——菜单栏、状态栏、中心部件    用set设置

可以有多个的——工具栏、锚接部件、各种控件 用new设置

猜你喜欢

转载自blog.csdn.net/Xinyue_Lu/article/details/105907641
今日推荐