Qt:菜单栏、工具栏、状态栏、核心控件、浮动窗口

M4Y

关注

阅读 58

2022-02-22

#include "mainwindow.h"
#include <QMenuBar>//菜单栏
#include <QMenu>//菜单
#include <QAction>
#include <QDebug>
#include <QToolBar>//工具栏
#include <QPushButton>//按钮
#include <QStatusBar>//状态栏
#include <QLabel>//标签
#include <QTextEdit>//文本框
#include <QDockWidget>//浮动窗口
MainWindow::MainWindow(QWidget *parent)//继承QMainWindow的MainWindow类的构造函数
    : QMainWindow(parent)
{
    this->setWindowTitle("文本编译器");
    resize(400,500);
    
    //一.菜单栏
    QMenuBar* mBar=menuBar();
    //1.添加菜单
    QMenu* pFile=mBar->addMenu("File");
    //2.添加菜单项,添加动作
    QAction* pNew=pFile->addAction("New Project");
    connect(pNew,&QAction::triggered,
            [=](){
        qDebug()<<"press New Project";
    }
            );
    pFile->addSeparator();//3.添加分割线
    QAction* pOpen=pFile->addAction("Open");
    connect(pOpen,&QAction::triggered,
            [=](){
        qDebug()<<"press Open";
    }
            );
            
    //二.工具栏
    //1.导航栏形式
    QToolBar* toolbar=addToolBar("ToolBar");
    toolbar->addAction(pNew);
    toolbar->addAction(pOpen);
    //2.按钮形式,添加小控件
    QPushButton* b1=new QPushButton(this);
    b1->setText("New Project");
    connect(b1,&QPushButton::released,
            [=](){
        b1->setText("Open");
    }
            );
    toolbar->addWidget(b1);
    
    //三.状态栏
    QStatusBar* sBar=statusBar();
    QLabel* label1=new QLabel(this);
    label1->setText("New Project");
    //addWidget从左往右添加
    sBar->addWidget(label1);
    sBar->addWidget(new QLabel("2",this));
    //addPermanentWidget从右往左添加
    sBar->addPermanentWidget(new QLabel("3",this));
    
    //四.核心控件
    //1.文本框
    QTextEdit* tEdit=new QTextEdit(this);
    setCentralWidget(tEdit);
    
    //五.浮动窗口
    QDockWidget* dWidget=new QDockWidget(this);
    addDockWidget(Qt::RightDockWidgetArea,dWidget);
    QTextEdit* tEdit1=new QTextEdit(this);//给浮动窗口添加文本框
    dWidget->setWidget(tEdit1);
}

在这里插入图片描述

精彩评论(0)

0 0 举报