Qt 创建菜单menubar和工具栏toolbar

在创建菜单栏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长度一致了

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值