-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmainwindow.cpp
More file actions
101 lines (87 loc) · 3.58 KB
/
mainwindow.cpp
File metadata and controls
101 lines (87 loc) · 3.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QMenu>
#include <QAction>
#include <QDebug>
#include <QFileDialog>
#include <QTreeWidget>
#include "picshow.h"
#include "wizard.h"
#include "protree.h"
#include "protreewidget.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
//this->setMinimumSize()
ui->setupUi(this);
QMenu *menuFile = menuBar()->addMenu(tr("文件(&F)"));
//菜单中创建项目动作
QAction *actionCreatePro = new QAction(QIcon(":/icon/createpro.png"),tr("创建项目"),this);
actionCreatePro->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_N));
menuFile->addAction(actionCreatePro);
//打开项目
QAction *actionOpenPro = new QAction(QIcon(":/icon/openpro.png"),tr("打开项目"),this);
actionOpenPro->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_O));
menuFile->addAction(actionOpenPro);
//设置背景音乐
QMenu *menuSet = menuBar()->addMenu(tr("设置(&S)"));
QAction *actionMusic = new QAction(QIcon(":/icon/music.png"),tr("背景音乐"),this);
actionMusic->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_M));
menuSet->addAction(actionMusic);
connect(actionCreatePro,&QAction::triggered,this,&MainWindow::SlotCreatePro);
connect(actionOpenPro,&QAction::triggered,this,&MainWindow::SlotOpenPro);
widgetProTree = new ProTree();
ui->treeLayout->addWidget(widgetProTree);
//不能直接进行槽函数连接,需要进行转换
QTreeWidget *treeWidget = dynamic_cast<ProTree *>(widgetProTree)->getTreeWidget();
ProTreeWidget *proTreeWidget = dynamic_cast<ProTreeWidget *>(treeWidget);
connect(this,&MainWindow::SigOpenPro,proTreeWidget,&ProTreeWidget::SlotOpenPro);
m_picShow = new picShow();
ui->photoLayout->addWidget(m_picShow);
picShow *proPicShow = dynamic_cast<picShow *>(m_picShow);
connect(proTreeWidget,&ProTreeWidget::SigUpdateSelected,proPicShow,&picShow::SlotSelectItem);
connect(proPicShow,&picShow::SigNextClicked,proTreeWidget,&ProTreeWidget::SlotNextShow);
connect(proPicShow,&picShow::SigPreClicked,proTreeWidget,&ProTreeWidget::SlotPreShow);
connect(proTreeWidget,&ProTreeWidget::SigUpdatePic,proPicShow,&picShow::SlotUpdatePic);
connect(proTreeWidget,&ProTreeWidget::SigClearSelected,proPicShow,&picShow::SlotClearItem);
connect(actionMusic,&QAction::triggered,proTreeWidget,&ProTreeWidget::SlotSetMusic);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::resizeEvent(QResizeEvent *event)
{
picShow *proPicShow = dynamic_cast<picShow *>(m_picShow);
proPicShow->ReloadPic();
QMainWindow::resizeEvent(event);
}
void MainWindow::SlotCreatePro()
{
qDebug()<<"create succeed";
Wizard wizard(this);
wizard.setWindowTitle(tr("创建项目"));
QWizardPage *page = wizard.page(0);
page->setTitle(tr("配置项目"));
connect(&wizard,&Wizard::SigProSettings,dynamic_cast<ProTree *>(widgetProTree),&ProTree::addProToTree);
wizard.show();
wizard.exec();
}
void MainWindow::SlotOpenPro()
{
QFileDialog fileDialog;
fileDialog.setFileMode(QFileDialog::Directory);
fileDialog.setWindowTitle("选择导入的文件夹");
fileDialog.setDirectory(QDir::currentPath());
fileDialog.setViewMode(QFileDialog::Detail);
QStringList fileNames;
if(fileDialog.exec()){
fileNames = fileDialog.selectedFiles();
}
if(fileNames.length() <= 0){
return;
}
QString importPath = fileNames.at(0);
emit SigOpenPro(importPath);
}