71 lines
1.8 KiB
C++
71 lines
1.8 KiB
C++
#include <QApplication>
|
|
#include <QTextCodec>
|
|
#ifdef _WINDOWS
|
|
#include <Windows.h>
|
|
#endif
|
|
#include <QColor>
|
|
#include <QDomDocument>
|
|
#include <QHash>
|
|
#include "MainWindow.h"
|
|
#include "component/SVG.h"
|
|
#include "global.h"
|
|
// 自定义 qHash 函数
|
|
#include <QColor>
|
|
#include <QDebug>
|
|
#include <QImage>
|
|
#include <QSet>
|
|
QColor base = QColor("#007ee1");
|
|
MainWindow::MainWindow() {
|
|
background_color = base;
|
|
main_layout = new QVBoxLayout(this);
|
|
int a = 2;
|
|
main_layout->setContentsMargins(leftMargin + 20, topMargin + a, rightMargin + a, bottomMargin + a);
|
|
header = new Header(this);
|
|
main_layout->addWidget(header);
|
|
create_center_Layout();
|
|
data_source.set_root(this);
|
|
}
|
|
|
|
|
|
void MainWindow::create_center_Layout() {
|
|
center_layout = new QHBoxLayout();
|
|
navigate_bar = new Navigate_Bar();
|
|
center_layout->addWidget(navigate_bar, 1);
|
|
center = new Center();
|
|
center_layout->addWidget(center, 4);
|
|
|
|
main_layout->addSpacing(16);
|
|
main_layout->addLayout(center_layout);
|
|
|
|
static auto click = [this](导航_Dat* d) {
|
|
if(std::holds_alternative<导航_Dat1>(d->data)){
|
|
auto& dd = std::get<导航_Dat1>(d->data);
|
|
auto w = dd.widget;
|
|
center->setWidget(dd.widget);
|
|
header->set_title(dd.title, dd.detail);
|
|
}
|
|
};
|
|
|
|
navigate_bar->set_click(click);
|
|
|
|
click(&navigate_bar->w->items[0]);
|
|
}
|
|
|
|
|
|
int main(int argc, char* argv[]) {
|
|
QApplication app(argc, argv);
|
|
QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
|
|
#ifdef _WINDOWS
|
|
SetConsoleOutputCP(CP_UTF8);
|
|
system("chcp 65001");
|
|
// setbuf(stdout, 0);
|
|
#endif
|
|
qRegisterMetaType<导航_Dat>("Dat");
|
|
MainWindow w;
|
|
w.resize(1000, 700);
|
|
w.show();
|
|
// svg/filter_1_24dp_5985E1_FILL0_wght400_GRAD0_opsz24.svg
|
|
YSG::startAllRenderThread();
|
|
return QApplication::exec();
|
|
}
|