Qt 中引入SARibbon库步骤(引入工程方式)

本文详细介绍了如何在Qt项目中集成SARibbon库,包括下载、引入、创建菜单、高分屏设置和主题定制,以及如何自定义菜单和面板布局。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、准备工作

1.1、下载 SARibbon 并解压

https://gitee.com/czyt1988/SARibbonicon-default.png?t=N7T8https://gitee.com/czyt1988/SARibbon

1.2、创建自己的工程项目 SiftTest

1.2.1、工程文件目录

1.2.2、运行结果

2、引入SARibbon

2.1、创建SARibbon目录

在自己的工程目录中创建SARibbon目录

2.2、复制SARibbon代码

从SARibbon 工程的SARibbon-master/src目录中复制文件到自己工程的SARibbon目中

SARibbon.h、SARibbon.cpp、SARibbon.pri三个文件和SARibbonBar目录

2.3、在工程文件中添加引用

include($$PWD/SARibbon/SARibbon.pri)

2.4、引用 SARibbon.h

#include "SARibbon.h"

2.5、修改父类

QMainWindow替换为SARibbonMainWindowSARibbonMainWindow修改了QMainWindow对menubar的渲染方式

2.6、界面变这样啦

3、创建菜单

3.1、高分屏设置

在main.cpp的main函数中添加高分屏设置代码

int main(int argc, char *argv[])
{
    //SARibbonBar的高分屏设置 点赞
    SARibbonBar::initHighDpi(); 
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    return a.exec();
}

3.2、设置icon

在函数中添加 setWindowIcon(QIcon(":/img/logo.png"));
MainWindow::MainWindow(QWidget *parent)
    : SARibbonMainWindow(parent)
    , ui(new Ui::MainWindow)
{

    setWindowIcon(QIcon(":/img/logo.png"));

    ui->setupUi(this);
}

3.3、ApplicationButton

ribbon界面左上角有个特殊且明显的按钮,称之为applicationButton,这个按钮一般用于调出菜单,SARibbonBar在构造时默认就创建了applicationButton,可以通过如下方式设置其文字:

SARibbonBar* bar = ribbonBar();
bar->applicationButton()->setText(tr("  File  "));

3.4、添加标签页

//标签创建方式一
    SARibbonCategory* categoryMain = bar->addCategoryPage(tr("&Main"));
    categoryMain->setObjectName(("categoryMain"));
    //! cn: SARibbonBar的Category和Pannel,以及对应的Action都应该设置ObjectName,因为如果要自定义action,这些ObjectName是必不可少的
    
    //标签创建方式二
    //! 先创建SARibbonCategory指针,
    //! 并通过SARibbonBar::addCategoryPage函数把SARibbonCategory指针传递给SARibbonBar
    SARibbonCategory* categoryOther = new SARibbonCategory();
    categoryOther->setCategoryName(tr("Other"));
    categoryOther->setObjectName(("categoryOther"));    
    bar->addCategoryPage(categoryOther);

3.5、添加面板

给Main标签页添加了两个面板

SARibbonPannel* pannel1  = categoryMain->addPannel(tr("主菜单"));
SARibbonPannel* pannel2  = categoryMain->addPannel(tr("其它"));

3.6、添加菜单

给主菜单面板添加几个菜单

    pannel1->addAction(tr("设置"), QIcon(":/img/setting.png")
                       , QToolButton::InstantPopup);
    pannel1->addAction(tr("开始"), QIcon(":/img/start.png")
                       , QToolButton::InstantPopup);
    pannel1->addAction(tr("历史数据"), QIcon(":/img/data.png")
                       , QToolButton::InstantPopup);
    pannel1->addAction(tr("小图标菜单1"), QIcon(":/img/logo.png")
                       , QToolButton::InstantPopup, SARibbonPannelItem::Small);
    pannel1->addAction(tr("小图标菜单2"), QIcon(":/img/logo.png")
                       , QToolButton::InstantPopup, SARibbonPannelItem::Small);
    pannel1->addAction(tr("小图标菜单3"), QIcon(":/img/logo.png")
                       , QToolButton::InstantPopup, SARibbonPannelItem::Small);
    pannel1->addAction(tr("小图标菜单4"), QIcon(":/img/logo.png")
                       , QToolButton::InstantPopup, SARibbonPannelItem::Medium);
    pannel1->addAction(tr("小图标菜单5"), QIcon(":/img/logo.png")
                       , QToolButton::InstantPopup, SARibbonPannelItem::Medium);
    pannel1->addAction(tr("小图标菜单6"), QIcon(":/img/logo.png")
                       , QToolButton::InstantPopup, SARibbonPannelItem::Medium);
    pannel1->addAction(tr("小图标菜单7"), QIcon(":/img/logo.png")
                       , QToolButton::InstantPopup, SARibbonPannelItem::Medium);

3.7、设置主题

    // 在构造函数设置主题会不完全生效
    QTimer::singleShot(0, this, [ this ]() { 
        this->setRibbonTheme(SARibbonMainWindow::RibbonThemeOffice2016Blue); 
    });

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值