QT:菜单栏、工具栏、状态栏,核心控件、浮动窗口的实现

一、首先来认识一下什么是菜单栏,什么是工具栏。
例如在Notepad++中:
QT:菜单栏、工具栏、状态栏,核心控件、浮动窗口的实现_第1张图片
新建一个文件夹,起名为QT_menu_tool_MainWindow,跟前面的文件一样,注意到了文件类型处,我们把新文件定义为QMainWindow型,这个是PC端常用的窗口类型
QT:菜单栏、工具栏、状态栏,核心控件、浮动窗口的实现_第2张图片
可以在头文件上看到文件的类型:
QT:菜单栏、工具栏、状态栏,核心控件、浮动窗口的实现_第3张图片
二、要包的头文件:
#include “mainwindow.h”
#include//菜单栏头文件
#include
#include//添加行为头文件
#include
#include//工具栏头文件
#include//按钮头文件
#include//状态栏头文件
#include//标签
#include//文本编辑
#include//浮动窗口

三、实现:
3.1
3.1.1实现一个菜单栏:
QMenuBar *mBar=menuBar();
3.1.2往菜单栏里添加菜单:
QMenu *pFile=mBar->addMenu(“文件”);
运行就会出现一个菜单栏,菜单栏里有一个菜单,文件
QT:菜单栏、工具栏、状态栏,核心控件、浮动窗口的实现_第4张图片
3.1.3一般下拉菜单还有有很多操作的功能,我们往文件菜单里添加几个操作
第一个操作:新建
QAction *pNew =pFile->addAction(“新建”);
第二个操作:打开
QAction *pOpen=pFile->addAction(“打开”);
中间用分割线:
pFile->addSeparator();//添加分隔线
按下新建就会打印new:
connect(pNew,&QAction::triggered,
=
{
qDebug()<<“new”;
}
);
运行结果:此时按下文件就会出现两个功能,新建和打开,点击新建就会打印new
QT:菜单栏、工具栏、状态栏,核心控件、浮动窗口的实现_第5张图片
3.2工具栏:工具栏其实是菜单栏的快捷方式
3.2.1添加工具栏
QToolBar *ToolBar=addToolBar(“ToolBar”);
3.2.2往工具栏里添加操作:新建
ToolBar->addAction(pNew);
3.2.3往工具栏里添加操作:编译
QPushButton *b=new QPushButton(this);
b->setText(“编译”);
3.2.4按下编译就会变为运行:运用之前所学的按钮
ToolBar->addWidget(b);

connect(b,&QPushButton::clicked,
=
{
b->setText(“运行”);
}
);
结果:
QT:菜单栏、工具栏、状态栏,核心控件、浮动窗口的实现_第6张图片
3.3状态栏:
QStatusBar *sBar=statusBar();//添加状态栏
QLabel *lable=new QLabel(this);//添加标签
lable->setText(“正常文件”);
sBar->addWidget(lable);
//addWidget 从左往右添加
sBar->addWidget(new QLabel(“2”,this));
//addPermanentWidget 右往左
sBar->addPermanentWidget(new QLabel(“3”,this));
运行结果:
QT:菜单栏、工具栏、状态栏,核心控件、浮动窗口的实现_第7张图片

3.4核心控件:说白了就是能打字的地方
QTextEdit *textEdit=new QTextEdit(this);//指定父对象
setCentralWidget(textEdit);

3.5浮动窗口
QDockWidget *dock=new QDockWidget(this);
addDockWidget(Qt::RightDockWidgetArea,dock);//前面一个参数是放的位置,放右边
// 给浮动窗口添加控件
QTextEdit *textEdit1=new QTextEdit(this);
dock->setWidget(textEdit1)
最终运行结果:
QT:菜单栏、工具栏、状态栏,核心控件、浮动窗口的实现_第8张图片
代码:
mainwind.cpp

#include "mainwindow.h"
#include
#include
#include
#include
#include//工具栏头文件
#include
#include//状态栏头文件
#include//标签
#include//文本编辑
#include//浮动窗口

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    //菜单栏

    QMenuBar *mBar=menuBar();
    mBar->resize(400,50);

    //添加菜单
    QMenu *pFile=mBar->addMenu("文件");

    //添加菜单项,添加工作
    QAction *pNew =pFile->addAction("新建");

    connect(pNew,&QAction::triggered,
             [=]()
                {
                   qDebug()<<"new";
                }
             );//按下新建就会打印new
    pFile->addSeparator();//添加分隔线
    QAction *pOpen=pFile->addAction("打开");

    //工具栏,菜单项的快捷方式

    QToolBar *ToolBar=addToolBar("ToolBar");
    //ToolBar->resize(400,50);

    //工具栏添加快捷键
    ToolBar->addAction(pNew);
    QPushButton *b=new QPushButton(this);
    b->setText("编译");
    //添加小控件
    ToolBar->addWidget(b);


   connect(b,&QPushButton::clicked,
           [=]()
   {
       b->setText("运行");
   }
   );

   //状态栏
   QStatusBar *sBar=statusBar();//添加状态栏
   QLabel *lable=new QLabel(this);//添加标签
   lable->setText("正常文件");
   sBar->addWidget(lable);
   //addWidget 从左往右添加
   sBar->addWidget(new QLabel("2",this));
   //addPermanentWidget 右往左
    sBar->addPermanentWidget(new QLabel("3",this));

   //核心控件
    QTextEdit *textEdit=new QTextEdit(this);
    setCentralWidget(textEdit);

    //浮动窗口
    QDockWidget *dock=new QDockWidget(this);

    addDockWidget(Qt::RightDockWidgetArea,dock);//前面一个参数是放的位置
    // 给浮动窗口添加控件
    QTextEdit *textEdit1=new QTextEdit(this);
    dock->setWidget(textEdit1);

}

MainWindow::~MainWindow()
{

}

你可能感兴趣的:(Qt学习)