Qt窗口控件之工具栏QToolBar
工具栏QToolBar
QToolBar
用于表示 Qt 中的工具栏,工具栏在 Qt 中不会默认生成,需要自己添加。QToolBar
与一级菜单一样,同时添加文本和图标,文本就会被覆盖掉。但是覆盖掉的文本会被设置到 toolTip
中,以鼠标悬停显示信息的方式出现。
1. QToolBar方法
方法 | 说明 |
---|---|
addToolBar(Qt::Area, QToolBar*) | 注意这个方法是属于 MainWindow 的,用于添加工具栏到窗口,第一个参数是设定工具栏的初始停靠位置,默认在窗口的顶部。Qt::LeftToolBarArea 为左侧Qt::RightToolBarArea 为右侧Qt::TopToolBarArea 为顶部Qt::BottomToolBarArea 为底部 |
setAllowedAreas(Qt::Area) | 注意这个方法是属于 QToolBar 的,用于设置工具栏的允许停靠位置,枚举参数与上面一致。 |
setFloatable(bool) | 用于设置工具栏是否可以在窗口的任意位置浮动。 |
2. 使用QToolBar设置工具栏
注意设置工具栏的接口是 addToolBar()
,因为工具栏一开始并不存在所以是需要 “添加” 工具栏:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QToolBar>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
QToolBar* toolBar=new QToolBar();
this->addToolBar(toolBar);
QAction* action1=new QAction("工具1");
QAction* action2=new QAction("工具2");
toolBar->addAction(action1);
toolBar->addAction(action2);
}
MainWindow::~MainWindow()
{
delete ui;
}
工具栏可以拖动放置在窗口的任意位置,也可以让它停靠在上下左右边缘。
3. QStatusBar
QStatusBar
用于表示 Qt 中的状态栏,状态栏也是唯一的,并且 ui 在最开始也创建了一个状态栏,可以使用:
QStatus* statusBar = this->statusBar();
this->setStatusBar(tatusbar);
来防止内存泄漏。
4. QStatusBar方法
方法 | 说明 |
---|---|
showMessage(QString, int time) | 用于在状态栏中显示一条即时消息,第二个参数为显示的持续时间,单位为 ms。 |
addWidget(Widget*, int ) | 用于在状态栏中从左侧向右添加控件,如添加 QLabel 来显示永久信息。第二个参数是控件的拉伸系数。 |
addPermanentWidget(Widget*, int) | 用于在状态栏中从右侧向左添加控件。 |