状态栏
状态栏最多也只能有一个。
创建状态栏需要添加头文件 #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);
运行效果如下:
同样,这里也可以设置浮动窗口是否允许拖拽 和 设置只允许停靠的在窗体的哪个区域。代码方法和设置工具栏中的方法一样。