LINUX.ORG.RU

[Qt] Инфо о выбранном файле в QDirModel

 


0

0

Собственно, как получить? Какой сигнал к какому слоту законнектить? Или существует иная реализация этого момента? Может, вообще не стоит пользоваться этой моделью? Задача простая — пользователь выбирает через QFileDialog корневую папку, QDirModel выводит дерево папок в соответсвующем представлении. При выделении файла в этом представлении нужно прочитать его данные — абсолютный путь в системе, MIME-тип и т.п. Тапками прошу не кидаться, занимаюсь самообразованием в условиях ограниченного доступа к информации.


В класе:

public slots:
	void on_treeView_clicked(QModelIndex);
private:
	QDirModel *my_model;


Открытие корневой папки (где угодно):

QFileDialog d;
QString dir_name = d.getExistingDirectory();
my_model = new QDirModel;
ui.treeView->setModel(my_model);
ui.treeView->setRootIndex(my_model->index(dir_name));

И слот:

void form1::on_treeView_clicked(QModelIndex i)
{
	ui.lineEdit->setText(my_model->fileName(i));
	ui.lineEdit_2->setText(my_model->filePath(i));
	.   .   .
	ui.lineEdit_n-> ...
}

Conficker
()
Ответ на: комментарий от Conficker

Собственно, не появляется имя файла в лайнЕдит На попытку обьявить в слотах slots onTreeViewClicked(Qt::ModelIndex) ruby ругается на ошибку синтаксиса

dplove
() автор топика
Ответ на: комментарий от Conficker

Прошу прощения, пропадал интернет. За это время я попробовал разобраться с документацией, но так и не понял одного — какой именно сигнал эмитит мой dirList при выделении в нем файла?

connect(@dirList, SIGNAL(???), $qApp, SLOT('dirListClicked()'))

dplove
() автор топика
Ответ на: комментарий от Conficker

Object::connect: No such signal QTreeView::clicked(Qt::ModelIndex)

Что больше всего смущает, так это то, что в документации среди сигналов QDirModel нет clicked(). В том числе, и среди наследуемых от QAbstractItemModel.

dplove
() автор топика
Ответ на: комментарий от Conficker

Да, спасибо большое, действительно. Просто я коннектил не к self, а к $qApp. Невнимательно прочитал.

dplove
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.