41 lines
1.3 KiB
C++
41 lines
1.3 KiB
C++
#include "FileExplorer.h"
|
|
#include "CustomFileDelegate.h"
|
|
|
|
|
|
FileExplorer::FileExplorer() {
|
|
model = new QFileSystemModel(this);
|
|
resize(1000, 800);
|
|
treeView = new QTreeView(this);
|
|
treeView->setModel(model);
|
|
it = new CustomFileDelegate(this, treeView);
|
|
treeView->setItemDelegate(it);
|
|
treeView->setHeaderHidden(false);
|
|
treeView->setColumnWidth(0, 250);
|
|
treeView->setAnimated(true);
|
|
treeView->setSortingEnabled(true);
|
|
treeView->setSelectionMode(QAbstractItemView::SingleSelection);
|
|
layout = new QVBoxLayout(this);
|
|
showRootDir = new QLineEdit;
|
|
showFocusFile = new QLabel;
|
|
layout->addWidget(showRootDir);
|
|
layout->addWidget(treeView);
|
|
auto bottom = new QHBoxLayout();
|
|
confirmButton = new QPushButton("确定");
|
|
cancelButton = new QPushButton("取消");
|
|
confirmButton->setFixedHeight(height);
|
|
cancelButton->setFixedHeight(height);
|
|
|
|
bottom->addWidget(showFocusFile);
|
|
bottom->addWidget(confirmButton);
|
|
bottom->addWidget(cancelButton);
|
|
layout->addLayout(bottom);
|
|
changeRoot("D:/");
|
|
|
|
connect(showRootDir, &QLineEdit::returnPressed, [this](){
|
|
changeRoot(showRootDir->text());
|
|
});
|
|
connect(treeView, &QTreeView::clicked, [this](const QModelIndex &index) {
|
|
focus = model->fileInfo(index);
|
|
showFocusFile->setText(focus.fileName());
|
|
});
|
|
} |