Qt Ribbon使用实例

采用SARibbon创建简单的ribbon界面

实例代码如下所示:

1、头文件:

#pragma once

#include <SARibbonBar.h>

#include "SARibbonMainWindow.h"

class QTextEdit;

class SAProjectDemo1 : public SARibbonMainWindow

{

Q_OBJECT

public:

SAProjectDemo1(QWidget *parent = Q_NULLPTR);

QAction* createAction(const QString& text, const QString& iconurl);

QTextEdit *mTextedit;

};

2、源文件

#include "SAProjectDemo1.h"

#include <QTextEdit>

#include <QStatusBar>

SAProjectDemo1::SAProjectDemo1(QWidget *parent)

: SARibbonMainWindow(parent)

{

setWindowTitle(("ribbon mainwindow test"));

setRibbonTheme(SARibbonTheme::RibbonThemeOffice2021Blue);

SARibbonBar* pRibbonBar = ribbonBar();

//

SARibbonCategory* page1 = new SARibbonCategory();

page1->setCategoryName("page1");

SARibbonPannel* pannel1 = new SARibbonPannel("pannel1", page1);

{

QAction* act = createAction("Demo", ":/SAProjectDemo1/Res/fullscreen.png");

act->setIconText("save1");

connect(act, &QAction::triggered, this, [this, act]()

{

});

pannel1->addLargeAction(act);

}

{

QAction* act = createAction("Demo", ":/SAProjectDemo1/Res/fullscreen.png");

act->setIconText("save2");

connect(act, &QAction::triggered, this, [this, act]()

{

});

pannel1->addLargeAction(act);

}

{

QAction* act = createAction("Demo", ":/SAProjectDemo1/Res/fullscreen.png");

act->setIconText("save3");

connect(act, &QAction::triggered, this, [this, act]()

{

});

pannel1->addLargeAction(act);

}

page1->addPannel(pannel1);

//

SARibbonPannel* pannel12 = new SARibbonPannel("pannel12", page1);

page1->addPannel(pannel12);

{

QAction* act = createAction("Demo", ":/SAProjectDemo1/Res/fullscreen.png");

act->setIconText("save");

connect(act, &QAction::triggered, this, [this, act]()

{

});

pannel12->addLargeAction(act);

}

pRibbonBar->addCategoryPage(page1);

//

SARibbonCategory* page2 = new SARibbonCategory();

page2->setCategoryName("page2");

SARibbonPannel* pannel2 = new SARibbonPannel("pannel2", page2);

{

QAction* act = createAction("Demo", ":/SAProjectDemo1/Res/fullscreen.png");

act->setIconText("save");

connect(act, &QAction::triggered, this, [this, act]()

{

});

pannel2->addLargeAction(act);

}

page2->addPannel(pannel2);

pRibbonBar->addCategoryPage(page2);

mTextedit = new QTextEdit(this);

setCentralWidget(mTextedit);

//

setStatusBar(new QStatusBar());

resize(800, 600);

}

QAction* SAProjectDemo1::createAction(const QString& text, const QString& iconurl)

{

QAction* act = new QAction(this);

act->setText(text);

act->setIcon(QIcon(iconurl));

act->setObjectName(text);

return act;

}

相关推荐
字节王德发17 天前
Ribbon负载均衡的深度解析与应用
spring cloud·ribbon·负载均衡
Kale又菜又爱玩20 天前
SpringCloud Ribbon 的用法详解
spring·spring cloud·ribbon
程序媛学姐1 个月前
SpringCloud负载均衡:Ribbon核心组件与策略配置
spring cloud·ribbon·负载均衡
ronshi1 个月前
Spring Cloud Gateway 使用ribbon以及nacos实现灰度发布
ribbon·nacos·gateway·灰度
小马爱打代码1 个月前
Spring Cloud 负载均衡(Ribbon)- 流量管理与服务调用优化
spring cloud·ribbon·负载均衡
黄名富2 个月前
Spring Cloud — 深入了解Eureka、Ribbon及Feign
分布式·spring·spring cloud·微服务·eureka·ribbon
@明明不知道2 个月前
spring cloud 微服务部署(2025年)第三章:Nacos、LoadBalancer、GateWay、Ribbon集成之网关Gateway部署
spring boot·spring cloud·微服务·ribbon·gateway
指尖下的技术2 个月前
SpringCloud面试题----.Ribbon和Feign调用服务的区别
spring·spring cloud·ribbon
春蕾夏荷_7282977253 个月前
MFC 创建Ribbon样式窗口
ribbon·mfc