当前位置: 首页 > news >正文

Qt Ribbon效果界面

实现效果:

头文件:

#pragma once
#include <QMdiArea>
#include <QMdiSubWindow>
#include <QMainWindow>
#include "ui_MainFrame1.h"
#include "DockManager.h"
#include "DockAreaWidget.h"

class MainFrame1 : public RibbonMainWindow
{
    Q_OBJECT

public:
    MainFrame1(QWidget *parent = nullptr);
    ~MainFrame1();


public slots:
    void ribboncurrentPageIndexChanged(int index);

private:
    Ui::MainFrame1Class ui;
    QMdiArea* mdiArea;
    QDockWidget* m_propDock;
    QDockWidget* m_leftDock;
    ads::CDockManager* m_pDockManger;
};
 

实现文件:

#include "MainFrame1.h"
#include <QMdiArea>
#include <QMdiSubWindow>
#include <qtreewidget.h>
#include <QDockWidget>
#include <QVBoxLayout>
#include "Page1.h"
#include "LeftWidget.h"

#pragma execution_character_set("utf-8")

MainFrame1::MainFrame1(QWidget *parent)
    : RibbonMainWindow(parent)
{
    //setStyleSheet("QMainWindow::title { background-color: red; }");

    //ui.setupUi(this);
    RibbonPage* pageHome1 = ribbonBar()->addPage(tr("Home1"));
    RibbonGroup* pGroup = pageHome1->addGroup(QString("button"));

    RibbonPage* pageHome2 = ribbonBar()->addPage(tr("Home2"));
    RibbonPage* pageHome3 = ribbonBar()->addPage(tr("Home3"));
    RibbonPage* pageHome4 = ribbonBar()->addPage(tr("Home4"));

    m_pDockManger = new ads::CDockManager(this);
    this->setCentralWidget(m_pDockManger);


    // 中心
    {
       mdiArea = new QMdiArea;
        mdiArea->setViewMode(QMdiArea::TabbedView);
        setCentralWidget(mdiArea);

        Page1* page1 = new Page1;
        QMdiSubWindow* subWindow = mdiArea->addSubWindow(page1);
        subWindow->setWindowState(Qt::WindowMaximized);
    }

    // 左侧
    {
        m_leftDock = new QDockWidget(tr("Left"), this);
        m_leftDock->setAllowedAreas(Qt::AllDockWidgetAreas);
        m_leftDock->setWidget(new LeftWidget());
        addDockWidget(Qt::LeftDockWidgetArea, m_leftDock);
    }

    // 右侧
    {
        m_propDock = new QDockWidget(tr("QTreeWidget"), this);
        m_propDock->setAllowedAreas(Qt::AllDockWidgetAreas);
        m_propDock->setWidget(new QTreeWidget());
        addDockWidget(Qt::RightDockWidgetArea, m_propDock);
    }

    connect(ribbonBar(), SIGNAL(currentPageIndexChanged(int)), this, SLOT(ribboncurrentPageIndexChanged(int)));


    QStatusBar* pStatusBar = statusBar();
    {
        QLabel* pLabel = new QLabel();
        pLabel->setText(tr("StatusBar"));
        pStatusBar->addWidget(pLabel);

        QComboBox* pComboBox = new QComboBox();
        pComboBox->addItem(tr("combo1"));
        pStatusBar->addWidget(pComboBox);


        Qtitan::RibbonSliderPane* sliderPane = new Qtitan::RibbonSliderPane();
        sliderPane->setScrollButtons(true);
        sliderPane->setRange(0, 100); // Range
        sliderPane->setMinimumWidth(100);
        sliderPane->setSingleStep(10);
        sliderPane->setMaximumWidth(130);
        pStatusBar->addPermanentWidget(sliderPane);
    }


    setMinimumSize(800, 500);
}

void MainFrame1::ribboncurrentPageIndexChanged(int index)
{
    switch (index)
    {
    case 0:
    {
        int y = 0;
        break;
    }
    case 1:
    {
        int y = 0;
        break;
    }
    case 2:
    {
        int y = 0;
        break;
    }
    case 3:
    {
        int y = 0;
        break;
    }
    default:
        break;
    }
}


MainFrame1::~MainFrame1()
{}
 

http://www.dtcms.com/a/267727.html

相关文章:

  • QT6 源(154)模型视图架构里的列表视图 QListView:先学习属性部分,
  • 认识Redis
  • Chat Model API
  • 60天python训练营打卡day52
  • 运算方法和运算器补充
  • 如何录制带备注的演示文稿(LaTex Beamer + Pympress)
  • Codeforces Round 919 (Div. 2) D. Array Repetition(分块,1900)
  • 【深圳大学机器学习】实验一:PCA算法
  • 【ACL系列论文写作指北15-如何进行reveiw】-公平、公正、公开
  • 大数据学习1:Hadoop单机版环境搭建
  • Redis 哨兵模式部署--docker版本
  • C++面试-auto,auto,auto 的区别
  • 【ESP32】2.多任务处理
  • 相机位姿估计
  • 使用接口测试工具类Postman和浏览器的差异
  • C++ 语言特性31 - 协程介绍(2)
  • 用 Turbo Vision 2 为 Qt 6 控制台应用创建 TUI 字符 MainFrame
  • Redis性能优化
  • 五、Python新特性指定类型用法
  • AI大模型(六)Langchain核心模块与实战(一)
  • 使用LVM和扩展文件系统增加root分区存储容量
  • 信号和槽(4)
  • 3dmax物理材质转换标准材质,物理材质转VR材质,VR材质转标准材质3dmax物理材质转标准材质插件
  • 98.验证二叉搜索树
  • python实现简单的地图绘制与标记20250705
  • 【每天一个知识点】子空间聚类(Subspace Clustering)
  • 零基础保姆级本地化部署文心大模型4.5开源系列
  • Unity文件夹标签 —— FolderTag
  • SpinLock (TTAS) C-A-S 自旋锁实现原理
  • 人工智能学习60-Yolo