작성
·
373
1
답변 1
0
안녕하세요. 김재우님 ,
QTreeView 에는 " doubleClicked(const QModelIndex &index) " 라는 Signal 이 있습니다. 이 시그널을 Slot 함수와 연결해주면, 클릭한 해당 디렉토리 또는 파일에 대한 정보를 얻어 올 수 있습니다.
예를 들어 아래와 같이 사용할 수 있습니다.
Widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QtWidgets>
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = 0);
~Widget();
private:
QFileSystemModel *m_model;
private slots:
void on_treeView_doubleClicked(const QModelIndex& index);
};
#endif // WIDGET_H
Widget.cpp
#include "widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
setWindowTitle("Model/View - QTreeView and QListView");
resize(600, 300);
QSplitter *splitter = new QSplitter(this);
// Model class
m_model = new QFileSystemModel;
m_model->setRootPath(QDir::currentPath());
// View widget - QTreeView
QTreeView *tree = new QTreeView(splitter);
tree->setModel(m_model);
tree->setRootIndex(m_model->index(QDir::currentPath()));
QVBoxLayout *layout = new QVBoxLayout();
layout->addWidget(tree);
setLayout(layout);
connect(tree, SIGNAL(doubleClicked(QModelIndex)),
this, SLOT(on_treeView_doubleClicked(QModelIndex)));
}
void Widget::on_treeView_doubleClicked(const QModelIndex& index)
{
qDebug() << m_model->filePath(index);
}
Widget::~Widget()
{
}
감사합니다.
제가 해당함수를 찾아보려고 해도 찾을 수가 없었습니다. QTreeView F1을 눌러 도움말을 열었지만 찾을 수 없었어요.. 어디서 볼 수 있을까요?