zl程序教程

您现在的位置是:首页 >  工具

当前栏目

QT QMainWindow 初识

Qt 初识
2023-09-27 14:25:49 时间

03 QMainWindow的状态栏和铆接部件和核心部件创建_哔哩哔哩_bilibili

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

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    this->resize(640, 480);

//    set的只能有一个add的可以有多个
//    菜单栏只能加一个
    QMenuBar* bar = menuBar();
    setMenuBar(bar);

    QMenu* fileMenu = bar->addMenu("文件");
    QMenu* newMenu = bar->addMenu("编辑");
//    工具栏可以加多个
    QAction* newAction = fileMenu->addAction("新建");
    QAction* openAction = fileMenu->addAction("打开");
    fileMenu->addSeparator();
    QAction* saveAction = fileMenu->addAction("保存");

//    将工具栏放入窗口
    QToolBar* toolBar = new QToolBar();
//    设置默认值
    addToolBar(Qt::LeftToolBarArea,toolBar);
//    只允许上下停靠
    toolBar->setAllowedAreas(Qt::LeftToolBarArea | Qt::RightToolBarArea);
    toolBar->setFloatable(false);
    toolBar->setMovable(true);

    QPushButton* btn = new QPushButton("poem", this);
    toolBar->addWidget(btn);

//    工具栏中添加菜单项
    toolBar->addAction(newAction);
    toolBar->addAction(openAction);
    toolBar->addSeparator();
    toolBar->addAction(saveAction);

//    状态栏 只有一个
    QStatusBar* status = statusBar();
    setStatusBar(status);

//    放入标签
    QLabel* label = new QLabel("left imfor", this);
    status->addWidget(label);

    QLabel* label2 = new QLabel("right imfor", this);
    status->addPermanentWidget(label2);

//    铆接部件 浮动窗口 可以多个
    QDockWidget* doc = new QDockWidget("link", this);
    addDockWidget(Qt::BottomDockWidgetArea, doc);

//    设置停靠范围
    doc->setAllowedAreas(Qt::TopDockWidgetArea | Qt::BottomDockWidgetArea);
//    核心部件只能有一个
    QTextEdit* edit = new QTextEdit(this);
    setCentralWidget(edit);



}

MainWindow::~MainWindow()
{
}