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;
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/67379.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/67379.shtml
英文地址,請注明出處:http://en.pswp.cn/web/67379.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

CISCO路由基礎全集

第一章&#xff1a;交換機的工作原理和基本技能_交換機有操作系統嗎-CSDN博客文章瀏覽閱讀1.1k次&#xff0c;點贊24次&#xff0c;收藏24次。交換機可看成是一臺特殊的計算機&#xff0c;同樣有CPU、存儲介質和操作系統&#xff0c;只是與計算機的稍有不同。作為數據交換設備&…

計算機畢業設計Django+Tensorflow音樂推薦系統 機器學習 深度學習 音樂可視化 音樂爬蟲 知識圖譜 混合神經網絡推薦算法 大數據畢設

溫馨提示&#xff1a;文末有 CSDN 平臺官方提供的學長聯系方式的名片&#xff01; 溫馨提示&#xff1a;文末有 CSDN 平臺官方提供的學長聯系方式的名片&#xff01; 溫馨提示&#xff1a;文末有 CSDN 平臺官方提供的學長聯系方式的名片&#xff01; 作者簡介&#xff1a;Java領…

單機偽分布Hadoop詳細配置

目錄 1. 引言2. 配置單機Hadoop2.1 下載并解壓JDK1.8、Hadoop3.3.62.2 配置環境變量2.3 驗證JDK、Hadoop配置 3. 偽分布Hadoop3.1 配置ssh免密碼登錄3.2 配置偽分布Hadoop3.2.1 修改hadoop-env.sh3.2.2 修改core-site.xml3.2.3 修改hdfs-site.xml3.2.4 修改yarn-site.xml3.2.5 …

在ubuntu下一鍵安裝 Open WebUI

該腳本用于自動化安裝 Open WebUI&#xff0c;并支持以下功能&#xff1a; 可選跳過 Ollama 安裝&#xff1a;通過 --no-ollama 參數跳過 Ollama 的安裝。自動清理舊目錄&#xff1a;如果安裝目錄 (~/open-webui) 已存在&#xff0c;腳本會自動刪除舊目錄并重新安裝。完整的依…

AJAX筆記入門篇

黑馬程序員視頻地址&#xff1a; 黑馬程序員前端AJAX入門到實戰全套教程https://www.bilibili.com/video/BV1MN411y7pw?vd_source0a2d366696f87e241adc64419bf12cab&spm_id_from333.788.videopod.episodes&p2https://www.bilibili.com/video/BV1MN411y7pw?vd_source…

工作總結:git篇

文章目錄 前言基礎Gerrit1.克隆2.新建本地分支和checkout3.添加到暫存區新增文件到暫存區修改已經添加到暫存區的文件取消添加到暫存區的文件 4.提交到本地倉庫在不重復提交的情況下&#xff0c;修改本次提交 5.提交到遠程倉庫6.評審其他輔助命令 前言 目前也算是工作一段時間…

< OS 有關> BaiduPCS-Go 程序的 菜單腳本 Script: BaiduPCS-Go.Menu.sh (bdgo.sh)

目標&#xff1a; 使用 日本阿里云的 VPM 傳輸文件。 暫時方案&#xff1a; 使用 主機JPN 下載 https://huggingface.co/ 上模型從 JPN 放到 度狗上在家里從狗度下載 為了減少編程&#xff0c;盡量使用現在軟件 &#xff0c;就找到 GitHub - qjfoidnh/BaiduPCS-Go: iikira…

項目測試之MockMvc

文章目錄 基礎基礎概念Mockxxx一般實現文件位置 實戰MockMvc與Test注解不兼容RequestParams參數RequestBody參數 基礎 基礎概念 定義&#xff1a;是Spring框架提供的一種用于測試Spring MVC控制器的工具&#xff0c;它允許開發者在不啟動完整的web服務器的情況下&#xff0c;…

(詳細)Springboot 整合動態多數據源 這里有mysql(分為master 和 slave) 和oracle,根據不同路徑適配不同數據源

文章目錄 Springboot 整合多動態數據源 這里有mysql&#xff08;分為master 和 slave&#xff09; 和oracle1. 引入相關的依賴2. 創建相關配置文件3. 在相關目錄下進行編碼&#xff0c;不同路徑會使用不同數據源 Springboot 整合多動態數據源 這里有mysql&#xff08;分為maste…

計算機網絡之計算機網絡的分類

計算機網絡可以根據不同的角度進行分類&#xff0c;以下是幾種常見的分類方式&#xff1a; 1. 按照規模和范圍&#xff1a; 局域網&#xff08;LAN&#xff0c;Local Area Network&#xff09;&#xff1a;覆蓋較小范圍&#xff08;例如一個建筑物或校園&#xff09;&#xf…

騰訊云開發提供免費GPU服務

https://ide.cloud.tencent.com/dashboard/web 適用于推理場景&#xff0c;每個月10000分鐘免費時長 166 小時 40 分鐘 自帶學術加速&#xff0c;速度還是不錯的 白嫖 Tesla T4 16G 算力 顯存&#xff1a;16GB 算力&#xff1a;8 TFlops SP CPU&#xff1a;8 核 內存&#…

國內外大語言模型領域發展現狀與預期

在數字化浪潮中&#xff0c;大語言模型已成為人工智能領域的關鍵力量&#xff0c;深刻影響著各個行業的發展軌跡。下面我們將深入探討國內外大語言模型領域的發展現狀以及未來預期。 一、發展現狀 &#xff08;一&#xff09;國外進展 美國的引領地位&#xff1a;OpenAI 的 …

存儲過程優化實踐:統一返回結構、參數 JSON 化與事務原子化

存儲過程作為數據庫中執行復雜業務邏輯的重要工具&#xff0c;在提升性能、保障數據一致性和簡化維護方面發揮著重要作用。然而&#xff0c;隨著應用程序和數據的復雜度不斷增加&#xff0c;存儲過程也面臨著性能瓶頸、維護難度和擴展性問題。為了應對這些挑戰&#xff0c;優化…

Lustre Core 語法 - 布爾表達式

Lustre v6 中的 Lustre Core 部分支持的表達式種類中&#xff0c;支持布爾表達式。相關的表達式包括and, or, xor, not, #, nor。 相應的文法定義為 Expression :: not Expression| Expression and Expression| Expression or Expression | Expression xor Expression | # (…

DeepSeek--通向通用人工智能的深度探索者

一、詞源與全稱 “DeepSeek"由"Deep”&#xff08;深度&#xff09;與"Seek"&#xff08;探索&#xff09;組合而成&#xff0c;中文譯名為"深度求索"。其全稱為"深度求索人工智能基礎技術研究有限公司"&#xff0c;英文對應"De…

模板生成引擎技術介紹

模板生成引擎技術介紹 什么是模板生成引擎&#xff1f; 模板生成引擎是一種用于將數據與預定義的格式相結合&#xff0c;以生成最終文檔或網頁的技術。它允許開發者通過定義模板和填充數據來自動化內容創建過程。這種技術廣泛應用于網站開發、報告生成、電子郵件定制等多個領…

第 5 章:聲音與音樂系統

5.1 聲音效果的應用 在游戲中&#xff0c;聲音效果是增強游戲沉浸感和趣味性的重要元素。Pygame 提供了強大的音頻處理功能&#xff0c;使得添加各種聲音效果變得相對簡單。聲音效果可以包括角色的動作音效&#xff0c;如跳躍、攻擊、受傷時的聲音&#xff1b;環境音效&#x…

matlab中,fill命令用法

在 MATLAB 中&#xff0c;fill 命令用于創建填充多邊形的圖形對象。使用 fill 可以在二維坐標系中繪制填充的區域&#xff0c;通常用于繪制圖形的背景或顯示數據分布。 基本語法 fill(X, Y, C)X 和 Y 是同樣長度的向量&#xff0c;定義了多邊形的頂點坐標。C 是顏色&#xff0…

ChatGPT 搜索測試整合記憶功能

據 TestingCatalog 報道&#xff0c;OpenAI 正在測試 ChatGPT 搜索的整合記憶功能&#xff0c;被命名為 “Memory in search”2。以下是關于該功能的具體情況123&#xff1a; 功能特點 個性化搜索&#xff1a;啟用該功能后&#xff0c;ChatGPT 能利用存儲的記憶數據&#xff0…

新站如何快速獲得搜索引擎收錄?

本文來自&#xff1a;百萬收錄網 原文鏈接&#xff1a;https://www.baiwanshoulu.com/8.html 新站想要快速獲得搜索引擎收錄&#xff0c;需要采取一系列有針對性的策略。以下是一些具體的建議&#xff1a; 一、網站內容優化 高質量原創內容&#xff1a; 確保網站內容原創、…