QT学习(八)——窗口的菜单,工具,核心控件和浮动窗口

想要窗口拥有菜单栏和工具栏等一类,那么就需要建立以QMainWindow为基类的文件项目。

 

由于之前已经对QT项目中的各个文件有所解读,所以这次把Mywindows.cpp实现文件来拆开解读各个接口。

 

-----------------------------------------------------------------

添加菜单栏

//菜单栏
QMenuBar *mBar;
mBar=menuBar();

-----------------------------------------------------------------

在菜单栏中添加菜单

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

以上两段一起运行

------------------------------------------------------------------

添加菜单选项,也是添加菜单动作——我这里添加了两个菜单,“新建”和“打开”,而且当我点击新建的时候会打印“新键被按下”

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

    connect(pNew,&QAction::triggered,
            []()
            {
               qDebug()<<"新建被按下";
            }
            );
    pFile->addSeparator();//添加分割线

    QAction *pOpen=pFile->addAction("打开");

 

---------------------------------------------------------------------

运行:
 

----------------------------------------------------------------------

添加工具栏

//工具栏,菜单项的快捷方式
QToolBar*toolBar=addToolBar("toolBar");//工具栏的名字,鼠标右击可以看见

 

-------------------------------------------------------------------------

为工具栏添加快捷键

 //工具栏添加快捷键
toolBar->addAction(pNew);//把之前的动作添加到快捷的工具栏里面,之后用户在操作两个按钮的时候所获得的效果是一样的

--------------------------------------------------------------------------

在工具栏中添加小控件
 

QPushButton*lol;
    lol=new QPushButton(this);
    lol->setText("Love You Forvevr!");
    //添加小控件
    toolBar->addWidget(lol);
    connect(lol,&QPushButton::clicked,
            [=]()
            {
                  lol->setText("Still Love You");
                  qDebug()<<"真尼玛是个老舔狗";
            }
            );

以上三段一起运行:

-----------------------------------------------------------------------------

以上就是对菜单,工具代码的分段解读,粘贴完整Mywindows.cpp代码

#include "mywindows.h"
#include<QMenuBar>//添加菜单栏的头文件
#include<QMenu>//添加菜单的头文件
#include<QAction>//添加菜单项的头文件
#include<QToolBar>//添加快捷方式,工具栏
#include<QDebug>
#include<QPushButton>

mywindows::mywindows(QWidget *parent)
    : QMainWindow(parent)
{
    resize(500,500);
    //菜单栏
    QMenuBar *mBar;
    mBar=menuBar();

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

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

    connect(pNew,&QAction::triggered,
            []()
            {
               qDebug()<<"新建被按下";
            }
            );
    pFile->addSeparator();//添加分割线

    QAction *pOpen=pFile->addAction("打开");


    //工具栏,菜单项的快捷方式
    QToolBar*toolBar=addToolBar("toolBar");//工具栏的名字,鼠标右击可以看见
    //工具栏添加快捷键
    toolBar->addAction(pNew);//把之前的动作添加到快捷的工具栏里面,之后用户在操作两个按钮的时候所获得的效果是一样的



    QPushButton*lol;
    lol=new QPushButton(this);
    lol->setText("Love You Forvevr!");
    //添加小控件
    toolBar->addWidget(lol);
    connect(lol,&QPushButton::clicked,
            [=]()
            {
                  lol->setText("Still Love You");
                  qDebug()<<"真尼玛是个老舔狗";
            }
            );



}

----------------------------------------------------------------------

同样把状态栏,核心控件与浮动窗口代码拆开理解

 

状态栏

 //状态栏
    QStatusBar*sBar=statusBar();
    QLabel*label=new QLabel(this);
    label->setText("Nomal Text file");
    sBar->addWidget(label);//使用接口添加标签
    //使用匿名标签对象再添加一个标签
    //addWidget是从左往右添加标签
    sBar->addWidget(new QLabel("Oh my god!",this));
    //addPermanentWidget从右往左添加标签
    sBar->addPermanentWidget(new QLabel("Wow!",this));

运行:

-----------------------------------------------------------------

核心控件

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

运行:

--------------------------------------------------------------------

浮动窗口

//浮动窗口
    QDockWidget*dock=new QDockWidget(this);
    //此函数两个参数的重载,第一个参数是放的位置,第二个参数是浮动窗口指针
    addDockWidget(Qt::RightDockWidgetArea,dock);//查看当前函数文档有特殊方法

注意:

 对addDockWidget查看文档的时候,一定要先对他括号中的两个参数先赋值两个1,之后才能查看该函数的信息。

对于addDockWidget的两个参数的重载,第一个参数是放的位置,第二个参数是浮动窗口指针,

而第一个参数是以下:

------------------------------------------------------------------------

为浮动窗口添加核心控件

//为浮动窗口添加核心控件
    QTextEdit*text1=new QTextEdit(this);
    dock->setWidget(text1);

以上两段代码运行:

--------------------------------------------------------------------------

下面是整个窗口的Mywindows.cpp实现文件

#include "mywindows.h"
#include<QMenuBar>//添加菜单栏的头文件
#include<QMenu>//添加菜单的头文件
#include<QAction>//添加菜单项的头文件
#include<QToolBar>//添加快捷方式,工具栏
#include<QDebug>
#include<QPushButton>
#include<QStatusBar>//状态栏头文件
#include<QLabel>//标签头文件
#include<QTextEdit>//文本编辑器
#include<QDockWidget>//浮动窗口

mywindows::mywindows(QWidget *parent)
    : QMainWindow(parent)
{
    resize(500,500);
    //菜单栏
    QMenuBar *mBar;
    mBar=menuBar();

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

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

    connect(pNew,&QAction::triggered,
            []()
            {
               qDebug()<<"新建被按下";
            }
            );
    pFile->addSeparator();//添加分割线

    QAction *pOpen=pFile->addAction("打开");


    //工具栏,菜单项的快捷方式
    QToolBar*toolBar=addToolBar("toolBar");//工具栏的名字,鼠标右击可以看见
    //工具栏添加快捷键
    toolBar->addAction(pNew);//把之前的动作添加到快捷的工具栏里面,之后用户在操作两个按钮的时候所获得的效果是一样的



    QPushButton*lol;
    lol=new QPushButton(this);
    lol->setText("Love You Forvevr!");
    //添加小控件
    toolBar->addWidget(lol);
    connect(lol,&QPushButton::clicked,
            [=]()
            {
                  lol->setText("Still Love You");
                  qDebug()<<"真尼玛是个老舔狗";
            }
            );


    //状态栏
    QStatusBar*sBar=statusBar();
    QLabel*label=new QLabel(this);
    label->setText("Nomal Text file");
    sBar->addWidget(label);//使用接口添加标签
    //使用匿名标签对象再添加一个标签
    //addWidget是从左往右添加标签
    sBar->addWidget(new QLabel("Oh my god!",this));
    //addPermanentWidget从右往左添加标签
    sBar->addPermanentWidget(new QLabel("Wow!",this));

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

    //浮动窗口
    QDockWidget*dock=new QDockWidget(this);
    //此函数两个参数的重载,第一个参数是放的位置,第二个参数是浮动窗口指针
    addDockWidget(Qt::RightDockWidgetArea,dock);//查看当前函数文档有特殊方法!


    //为浮动窗口添加核心控件
    QTextEdit*text1=new QTextEdit(this);
    dock->setWidget(text1);

}

运行:

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值