1、菜单栏
- 菜单栏最多只有一个
- 创建菜单栏:
QMenuBar * bar = menuBar();
- 将菜单栏放入窗口:
setMenuBar(bar);
- 创建菜单:
QMenu * fileMenu = bar->addMenu("文件"); QMenu * editMenu = bar->addMenu("编辑");
- 创建菜单项:
在这里插入代码片
:QAction *newAction = fileMenu->addAction("新建");QAction *openAction = fileMenu->addAction("打开");
- 添加分隔线:
fileMenu->addSeparator();
2、工具栏
- 可以有多个
- 创建工具栏:
QToolBar * toolBar = new QToolBar(this);
- 将工具栏放入窗口,并设置停靠:
addToolBar(Qt::LeftToolBarArea,toolBar);
- 设置只允许左右停靠:
toolBar->setAllowedAreas(Qt::LeftToolBarArea|Qt::RightToolBarArea);
- 设置浮动:
toolBar->setFloatable(false);
- 设置移动:总开关:
toolBar->setMovable(true);
- 工具栏设置内容:
toolBar->addAction(newAction);
toolBar->addAction(openAction);
- 添加分割线:
toolBar->addSeparator();
- 工具栏中添加控件:
QPushButton * btn = new QPushButton("开始",this); toolBar->addWidget(btn);
3、代码示例
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private:
};
#endif
#include "mainwindow.h"
#include <QMenuBar>
#include <QToolBar>
#include <QPushButton>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
resize(600,400);
QMenuBar * bar = menuBar();
setMenuBar(bar);
QMenu * fileMenu = bar->addMenu("文件");
QMenu * editMenu = bar->addMenu("编辑");
QAction *newAction = fileMenu->addAction("新建");
fileMenu->addSeparator();
QAction *openAction = fileMenu->addAction("打开");
QToolBar * toolBar = new QToolBar(this);
addToolBar(Qt::LeftToolBarArea,toolBar);
toolBar->setAllowedAreas(Qt::LeftToolBarArea|Qt::RightToolBarArea);
toolBar->setFloatable(false);
toolBar->setMovable(true);
toolBar->addAction(newAction);
toolBar->addSeparator();
toolBar->addAction(openAction);
QPushButton * btn = new QPushButton("开始",this);
toolBar->addWidget(btn);
}
MainWindow::~MainWindow()
{
}
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
4、运行结果
