#include "mainwindow.h"
#include <cstdio>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    // 设置窗口的标题
    setWindowTitle("正在学习QMainWindow");
    resize(1200,960);

    // 创建菜单栏（QMenuBar，QMenu，QAction）
    QMenuBar *menu_bar = menuBar();
    this->setMenuBar(menu_bar); // 设置当前窗口的菜单栏

    // 创建图片空间
    QPixmap pix_map;
    pix_map.load(":icon/start");

    // 创建菜单
    QMenu *menu1 = new QMenu("文件",this);
    // 创建菜单项
    QAction *openAction =   menu1->addAction("打开...");
    QMenu *sub_menu = new QMenu("最近使用",this); // 子菜单
    sub_menu->addAction("d:\\a.txt");
    // 添加子菜单（菜单项也可以是一个菜单，即为子菜单）
    menu1->addMenu(sub_menu);
    QAction *newAction = menu1->addAction("新建...");
    menu1->addSeparator();
    newAction->setIcon(QIcon(pix_map));
    QAction *exitAction = menu1->addAction("退出");
    menu_bar->addMenu(menu1);
    exitAction->setIcon(QIcon(":icon/stop"));


    QMenu *menu2 = new QMenu("编辑",this);
    QAction *editAction = menu2->addAction("复制");
    menu2->addAction("剪切");
    menu2->addAction("粘贴");

    menu_bar->addMenu(menu2);

    // 菜单项的快捷方式
    openAction->setShortcut(QKeySequence(Qt::CTRL+Qt::Key_O));
    newAction->setShortcut(QKeySequence(tr("ctrl+n")));
    exitAction->setShortcut(QKeySequence(tr("ctrl+q")));

    // 初始化子控件
    mEdit = new QTextEdit(this);
    mEdit->hide();
    mWidget1 = new Widget1;

    connect(openAction,&QAction::triggered,[=](){
        takeCentralWidget(); // 将当前中心空间从主窗口移除
        qDebug()<<"正在打开文件...";
        setCentralWidget(mEdit);
        mEdit->show();

    });
    connect(newAction,&QAction::triggered,[=](){
        takeCentralWidget();
        qDebug()<<"正在新建文件...";
        setCentralWidget(mWidget1);

    });
    connect(exitAction,&QAction::triggered,this,&QMainWindow::close);

    // 工具栏
    QToolBar *tool_bar = new QToolBar;
    tool_bar->setParent(this);
    tool_bar->addAction(openAction);
    tool_bar->addAction(newAction);
    tool_bar->addSeparator();
    tool_bar->addAction(exitAction);
    tool_bar->setMovable(false); // 禁止拖动
    tool_bar->setFloatable(false); // 禁止浮动
    tool_bar->setAllowedAreas(Qt::LeftToolBarArea|Qt::RightToolBarArea);
    this->addToolBar(tool_bar);
    //    this->addToolBar(Qt::LeftToolBarArea,tool_bar);


    // 创建状态栏
    QStatusBar *status_bar = new QStatusBar(this);
    setStatusBar(status_bar);
    QLabel *label1 = new QLabel("状态: 1",this);
    status_bar->addWidget(label1); // 从左向右添加
    QLabel *label2 = new QLabel("状态: 2",this);
    //    label2->setFixedSize(200,40);
    //    label2->setStyleSheet("background-color: #cf0f13; padding-left: 100px;");
    status_bar-> addPermanentWidget(label2); // 从右向左添加
    status_bar->addWidget(new QLabel("状态 3: 0",this),1); // 1 是平铺剩余空间


    // 创建铆接控件
    QDockWidget *dock = new QDockWidget("铆接1",this);
    dock->addAction(openAction);
    dock->addAction(exitAction);
    dock->setWidget(new Widget1(this));
    QDockWidget *dock2 = new QDockWidget("铆接2",this);
    dock2->setWidget(new QPushButton("点我试试",this));
    addDockWidget(Qt::TopDockWidgetArea,dock);
    addDockWidget(Qt::TopDockWidgetArea,dock2);


    // 中心部件

}

MainWindow::~MainWindow()
{
}

