Qt -- 17状态栏、核心控件和浮动窗口

这篇博客介绍了如何在Qt环境中创建和使用状态栏,包括添加标签显示状态信息,并展示了如何设置核心部件,如文本编辑区。同时,详细讲解了创建浮动窗口的过程,包括浮动窗口的位置设置以及添加控件的方法。通过实例代码,演示了如何实现拖拽和停靠功能。
摘要由CSDN通过智能技术生成

状态栏

状态栏最多也只能有一个。

创建状态栏需要添加头文件 #include<QStatusBar>

1、首先,

//先添加一个状态栏
QStatusBar *sBar=statusBar();
//设置到窗口中
setStatusBar(sBar);

运行效果如下:
在这里插入图片描述

2、其次,要想通过状态栏显示状态信息,需要用到一个标签,所以要加上标签的头文件 #include <QLabel>

 //状态栏
    //先添加一个状态栏
    QStatusBar *sBar=statusBar();
    //创建一个标签控件并指定父对象
    //this 表明挂接到对象树上,不需要管它释放了。
    QLabel *label = new QLabel(this);
    //标签显示内容
    label ->setText("Nomal text file");
    //在状态栏中添加标签控件
    sBar->addWidget(label);

或者,写成这样。

 //状态栏
    //先添加一个状态栏
    QStatusBar *sBar=statusBar();
    //创建一个标签控件并指定父对象
    QLabel *label = new QLabel("Nomal text file",this);
    //标签显示内容
    label ->setText("Nomal text file");
    //在状态栏中添加标签控件
    sBar->addWidget(label);

显示结果如下:
在这里插入图片描述

 //直接通过QLabel的构造函数来添加,这是从左往右添加
 sBar->addWidget(new QLabel("twice",this));

结果如下:
在这里插入图片描述

    //这是从右往左添加
    sBar->addPermanentWidget(new QLabel("third",this));

在这里插入图片描述

核心控件

核心部件也只能有一个。

这里将文本编辑区添加为窗口的核心部件,因为需要用到文本编辑区,所以需要添加文本编辑控件的头文件
#include <QTextEdit>

    //核心控件
    //创建一个文本编辑区控件,并指定父对象
    QTextEdit *textEdit = new QTextEdit(this);
    //将文本编辑区添加为窗口的核心部件
    setCentralWidget(textEdit);

在这里插入图片描述
从上图可以看出,默认就有复制粘贴功能了。

铆接部件(浮动窗口)

铆接部件也可以有多个。

创建铆接部件需要添加头文件 #include<QDockWidget>

1、使用 new 关键字来创建铆接部件

构造函数一:

//this 表明挂接到对象树上,不需要管它释放了。
QDockWidget * dockWidget = new QDockWidget(this);

构造函数二(给浮动窗口起一个名字):

//this 表明挂接到对象树上,不需要管它释放了。
QDockWidget * dockWidget = new QDockWidget("浮动窗口",this);

2、将铆接部件放到窗体上使用函数 addDockWidget ,addDockWidget 有函数重载。

第一种,
在这里插入图片描述
还有一种(按上下左右键中的上下键进行函数参数显示的切换。)
在这里插入图片描述
可以看出,这一种需要两个参数。
如果想看帮助文档,在没写参数的情况下是跳转不过去的,因此,这里先随便给它两个参数。
如下图:
在这里插入图片描述
此时,再按F1进行跳转就可以了。
在这里插入图片描述
我们点击看看第一个参数是什么
枚举类型。
在这里插入图片描述
浮动窗口添加到的方位。
第二参数,是浮动窗口对象。

//浮动窗口
//创建一个浮动窗口控件,并指定父对象
//this 表明挂接到对象树上,不需要管它释放了。
QDockWidget * dockWidget = new QDockWidget("浮动窗口",this);
addDockWidget(Qt::BottomDockWidgetArea,dockWidget);

这里将浮动窗口放到窗体的底部,显示效果如下。此外,通过鼠标拖拽还可以将浮动窗口进行移动。
在这里插入图片描述
为什么显示效果是这个样子,是因为浮动窗口是围绕着核心窗口去放置的。而这里没有设置核心窗口,所以显示出来的效果是这个样子。

下面,我们在浮动窗口中添加类似文本编辑器等一些核心窗口控件。

 	//创建一个文本编辑区控件,并指定父对象
    QTextEdit *textEdit = new QTextEdit(this);
    //在浮动窗口中添加文本编辑区控件
    setCentralWidget(textEdit);

	//创建一个浮动窗口控件,并指定父对象
    //this 表明挂接到对象树上,不需要管它释放了。
    QDockWidget * dockWidget = new QDockWidget("浮动窗口",this);
    addDockWidget(Qt::RightDockWidgetArea,dockWidget);

运行效果如下:
在这里插入图片描述
同样,这里也可以设置浮动窗口是否允许拖拽 和 设置只允许停靠的在窗体的哪个区域。代码方法和设置工具栏中的方法一样。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xuechanba

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值