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()

{}