在创建菜单栏menubar和工具栏toolbar之前,我们要知道一个窗体只能有一个menubar,可以有多个toolbar,因此在创建时应该注意:
只有一个的不需要用new关键字创建,而多个的必须要用new创建。
为实现下图效果,代码编写如下:
setWindowTitle("文本编辑器");
//创建menu菜单栏
QMenuBar *menubar=menuBar();
setMenuBar(menubar);
//创建menu子菜单
QMenu *menu1=new QMenu("文件",this);
QMenu *menu2=new QMenu("编辑",this);
QMenu *menu3=new QMenu("格式",this);
menubar->addSeparator();
//添加menu到menubar中
menubar->addMenu(menu1);
menubar->addMenu(menu2);
menubar->addMenu(menu3);
//添加menu子菜单
QAction *actNew=new QAction("新建",this);
actNew->setIcon(QIcon(QPixmap(":/images/file-zip.png")));
QAction *actOpen=new QAction("打开");
actOpen->setIcon(QIcon(QPixmap(":/images/file-zip.png")));
QAction *actClear=new QAction("清空");
actClear->setIcon(QIcon(QPixmap(":/images/file-zip.png")));
menu1->addAction(actNew);
menu1->addAction(actOpen);
menu1->addAction(actClear);
//创建toolbar工具条
toolbar1=new QToolBar(this);
toolbar1->addAction(actNew);
toolbar1->addAction(actOpen);
toolbar1->addAction(actClear);
toolbar1->move(0,25);
//设置停靠位置
toolbar1->setAllowedAreas(Qt::TopToolBarArea);
toolbar1->setFloatable(false);
toolbar1->setMovable(false);
//设置文字和图标相对关系
toolbar1->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
toolbar1->setOrientation(Qt::Horizontal);
但是,上述代码未能实现窗体缩放时,toolbar长度跟着缩放,需要添加resizeEvent函数
void MainWindow::resizeEvent(QResizeEvent *size){
//在头文件中定义width变量
width=this->geometry().width();
toolbar1->resize(width,30);
}
如此就能实现toolbar长度和窗体mainwindow长度一致了