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;

}

相关推荐
Absinthe_苦艾酒6 天前
SpringCloud之Ribbon基础认识-服务负载均衡
spring cloud·微服务·ribbon
柚个朵朵8 天前
Springclound常用五大组件及其使用原理
spring cloud·hystrix·eureka·ribbon·gateway·feign
白总Server18 天前
多智能体系统的中间件架构
linux·运维·服务器·中间件·ribbon·架构·github
repetitiononeoneday18 天前
微服务基础-Ribbon
微服务·ribbon·架构
蓝眸少年CY22 天前
(第三篇)Springcloud之Ribbon负载均衡
spring cloud·ribbon·负载均衡
vrlab12325 天前
C#+Visual Studio 2022为AutoCAD 2022开发插件并显示在Ribbon选项卡
ribbon·c#·visual studio
字节王德发2 个月前
Ribbon负载均衡的深度解析与应用
spring cloud·ribbon·负载均衡
Kale又菜又爱玩2 个月前
SpringCloud Ribbon 的用法详解
spring·spring cloud·ribbon
程序媛学姐2 个月前
SpringCloud负载均衡:Ribbon核心组件与策略配置
spring cloud·ribbon·负载均衡
ronshi2 个月前
Spring Cloud Gateway 使用ribbon以及nacos实现灰度发布
ribbon·nacos·gateway·灰度