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