#include "mainwindow.h"

#include <QFontDatabase>
#include <QLayout>

MainWindow::MainWindow(DMainWindow *parent)
    : DMainWindow(parent),
      //    实例化窗口控件
      dbutton_1(new DPushButton),
      dbutton_2(new DPushButton),
      qbutton_1(new QPushButton),
      qbutton_2(new QPushButton)
{
    //  初始化主窗口
    setCentralWidget(w);    //  将 w 作为窗口的用户部分（整个窗口除了标题栏的部分）
    setFixedSize(800, 300); //  改变窗口大小应当改变 MainWindow 的大小

    //  载入字体
    int loadedFontID = QFontDatabase::addApplicationFont(":/fonts/华康少女字体.ttf");
    QStringList loadedFontFamilies = QFontDatabase::applicationFontFamilies(loadedFontID);
    if(!loadedFontFamilies.isEmpty())
        font = loadedFontFamilies.at(0);

    //  设置按钮样式
    dbutton_1->setParent(w);
    dbutton_1->resize(300, 100);
    dbutton_1->setText("这是一个带有字体样式的 DPushButton");
    dbutton_1->setFont(font);

    dbutton_2->setParent(w);
    dbutton_2->resize(300, 100);
    dbutton_2->setText("这是一个没有字体样式的 DPushButton");

    qbutton_1->setParent(w);
    qbutton_1->resize(300, 100);
    qbutton_1->setText("这是一个带有字体样式的 QPushButton");
    qbutton_1->setFont(font);

    qbutton_2->setParent(w);
    qbutton_2->resize(300, 100);
    qbutton_2->setText("这是一个没有字体样式的 QPushButton");

    //  设置按钮布局
    QVBoxLayout *dlayout = new QVBoxLayout;
    dlayout->setAlignment(Qt::AlignCenter);
    dlayout->addWidget(dbutton_1);
    dlayout->addSpacing(50);
    dlayout->addWidget(dbutton_2);

    QVBoxLayout *qlayout = new QVBoxLayout;
    qlayout->setAlignment(Qt::AlignCenter);
    qlayout->addWidget(qbutton_1);
    qlayout->addSpacing(50);
    qlayout->addWidget(qbutton_2);

    QHBoxLayout *layout = new QHBoxLayout;
    layout->setAlignment(Qt::AlignCenter);
    layout->addLayout(dlayout);
    layout->addSpacing(50);
    layout->addLayout(qlayout);

    w->setLayout(layout);
}

MainWindow::~MainWindow()
{
    delete w;
}
