Files
Misaki bb600bbbc4 first
2025-12-04 19:11:29 +08:00

109 lines
3.8 KiB
C++

#include "T_Navigation.h"
#include <QHBoxLayout>
#include <QLabel>
#include <QVBoxLayout>
#include "ElaBreadcrumbBar.h"
#include "ElaPivot.h"
#include "ElaPushButton.h"
#include "ElaScrollPageArea.h"
#include "ElaTabWidget.h"
#include "ElaText.h"
T_Navigation::T_Navigation(QWidget* parent)
: T_BasePage(parent)
{
// 预览窗口标题
setWindowTitle("ElaNavigation");
// 顶部元素
createCustomWidget("一些导航组件被放置于此,可在此界面体验其效果并按需添加进项目中");
//ElaBreadcrumbBar
ElaText* breadcrumbBarText = new ElaText("ElaBreadcrumbBar", this);
breadcrumbBarText->setTextPixelSize(18);
_breadcrumbBar = new ElaBreadcrumbBar(this);
QStringList breadcrumbBarList;
for (int i = 0; i < 20; i++)
{
breadcrumbBarList << QString("Item%1").arg(i + 1);
}
_breadcrumbBar->setBreadcrumbList(breadcrumbBarList);
ElaPushButton* resetButton = new ElaPushButton("还原", this);
resetButton->setFixedSize(60, 32);
connect(resetButton, &ElaPushButton::clicked, this, [=]() {
_breadcrumbBar->setBreadcrumbList(breadcrumbBarList);
});
QHBoxLayout* breadcrumbBarTextLayout = new QHBoxLayout();
breadcrumbBarTextLayout->addWidget(breadcrumbBarText);
breadcrumbBarTextLayout->addSpacing(15);
breadcrumbBarTextLayout->addWidget(resetButton);
breadcrumbBarTextLayout->addStretch();
ElaScrollPageArea* breadcrumbBarArea = new ElaScrollPageArea(this);
QVBoxLayout* breadcrumbBarLayout = new QVBoxLayout(breadcrumbBarArea);
breadcrumbBarLayout->addWidget(_breadcrumbBar);
// ElaPivot
ElaText* pivotText = new ElaText("ElaPivot", this);
pivotText->setTextPixelSize(18);
_pivot = new ElaPivot(this);
_pivot->setPivotSpacing(8);
_pivot->setMarkWidth(75);
_pivot->appendPivot("本地歌曲");
_pivot->appendPivot("下载歌曲");
_pivot->appendPivot("下载视频");
_pivot->appendPivot("正在下载");
_pivot->setCurrentIndex(0);
ElaScrollPageArea* pivotArea = new ElaScrollPageArea(this);
QVBoxLayout* pivotLayout = new QVBoxLayout(pivotArea);
pivotLayout->addWidget(_pivot);
// ElaTabWidget
ElaText* tabWidgetText = new ElaText("ElaTabWidget", this);
tabWidgetText->setTextPixelSize(18);
_tabWidget = new ElaTabWidget(this);
_tabWidget->setFixedHeight(500);
QLabel* page1 = new QLabel("新标签页1", this);
page1->setAlignment(Qt::AlignCenter);
QFont font = page1->font();
font.setPixelSize(32);
page1->setFont(font);
QLabel* page2 = new QLabel("新标签页2", this);
page2->setFont(font);
page2->setAlignment(Qt::AlignCenter);
QLabel* page3 = new QLabel("新标签页3", this);
page3->setFont(font);
page3->setAlignment(Qt::AlignCenter);
QLabel* page4 = new QLabel("新标签页4", this);
page4->setFont(font);
page4->setAlignment(Qt::AlignCenter);
_tabWidget->addTab(page1, QIcon(":/Resource/Image/Cirno.jpg"), "新标签页1");
_tabWidget->addTab(page2, "新标签页2");
_tabWidget->addTab(page3, "新标签页3");
_tabWidget->addTab(page4, "新标签页4");
QWidget* centralWidget = new QWidget(this);
centralWidget->setWindowTitle("ElaNavigation");
QVBoxLayout* centerVLayout = new QVBoxLayout(centralWidget);
centerVLayout->setContentsMargins(0, 0, 0, 0);
centerVLayout->addLayout(breadcrumbBarTextLayout);
centerVLayout->addSpacing(10);
centerVLayout->addWidget(breadcrumbBarArea);
centerVLayout->addSpacing(15);
centerVLayout->addWidget(pivotText);
centerVLayout->addSpacing(10);
centerVLayout->addWidget(pivotArea);
centerVLayout->addSpacing(15);
centerVLayout->addWidget(tabWidgetText);
centerVLayout->addSpacing(10);
centerVLayout->addWidget(_tabWidget);
addCentralWidget(centralWidget, true, false, 0);
}
T_Navigation::~T_Navigation()
{
}