Qt学习笔记(六):工具栏


创建项目时,指定基类为 QMainWindow,不勾选“创建界面”,通过代码实现工具栏的创建,了解工具栏实现的原理。 

#include "mainwindow.h"
#include <QToolBar>
#include <QMenuBar>
#include <QMenu>
#include <QAction>
#include <QDebug>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    this->resize(400, 300);
    
    // 创建一个工具栏对象(工具栏可以有多个,菜单栏只有一个)
    QToolBar *toolBar = new QToolBar(this);

    // 添加工具栏项
    QAction *action = new QAction("新建", this);
    toolBar->addAction(action);   // 可以添加 QAction 对象
    toolBar->addAction("打开");   // 也可以直接添加
    toolBar->addSeparator();      // 添加分割线
    
    // 为工具栏绑定点击事件
    action->connect(action, &QAction::triggered, [=](){
        qDebug() << "新建工具栏";
    });
    
    
    // 注意:工具栏也可以直接添加菜单项作为工具栏项
    QMenuBar *mBar = this->menuBar();                      // 创建菜单栏
    QMenu *editMenu = mBar->addMenu("编辑");               // 添加菜单
    QAction *copyAction = editMenu->addAction("复制");     // 添加菜单项
    QAction *pasteAction = editMenu->addAction("粘贴");    // 添加菜单项
    // 直接将菜单项添加到工具栏上
    toolBar->addAction(copyAction);
    toolBar->addAction(pasteAction);

    
    // 将工具栏添加到窗口上;
    // 工具栏可以拖拽,在窗口的上、下、左、右都可以停靠;默认停靠上方;
//    this->addToolBar(toolBar);
    
    // 将工具栏添加到窗口上时,可以指定工具栏默认停靠左边
    this->addToolBar(Qt::LeftToolBarArea, toolBar);
    
    // 可以设置工具栏允许的停靠范围,比如设置只允许左侧和右侧停靠
    toolBar->setAllowedAreas(Qt::LeftToolBarArea | Qt::RightToolBarArea);

    // 设置工具栏禁止浮动(默认情况下,工具栏可以浮动在窗口的任意位置)
    toolBar->setFloatable(false);
    
    // 设置工具栏禁止移动(工具栏禁止任何拖拽移动)
    toolBar->setMovable(false);
}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值