22.04.13 16:27 작성
·
313
1
답변 1
0
2022. 04. 13. 17:26
안녕하세요. 김재우님 ,
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()
{
}
2022. 04. 13. 18:55
Assistant 툴에서 보시면 찾을 수 있습니다. QTreeView 는 QAbstractItemView 클래스로부터 상속받는데, 이 클래스에 보면 확인 하실 수 있습니다.
아래 그림에서 보는 것과 같이 빨간색으로 테두리 되어있는 링크를 클릭하시면 됩니다.
Assistant 가 Qt 버전마다 조금씩 형식이 다룰 수 있습니다. 따라서 inherited members 와 관련된 링크를 클릭하시면 됩니다.
2022. 04. 13. 18:30
감사합니다.
제가 해당함수를 찾아보려고 해도 찾을 수가 없었습니다. QTreeView F1을 눌러 도움말을 열었지만 찾을 수 없었어요.. 어디서 볼 수 있을까요?