Russian Qt Forum

Qt => Model-View (MV) => Тема начата: B_u_R_n от Март 24, 2010, 15:33



Название: QTreeView
Отправлено: B_u_R_n от Март 24, 2010, 15:33
Здравствуйте, есть такая проблема
Сделал вывод файлов и директорий из хоума, так
splitter = new QSplitter;
    model = new QDirModel;
    tree = new QTreeView(splitter);
    tree->setModel(model);
    tree->setRootIndex(model->index(QDir::homePath()));
     QItemSelectionModel *selection = new QItemSelectionModel(model);
    tree->setSelectionModel(selection);
    tree->isSortingEnabled();
Все работает
Ставлю обработчик на клик по элементу(папка или файл)
    connect(tree,SIGNAL(activated(QModelIndex)),this,SLOT(Uploaf_file_click()));
Вот хочу получить как-то пусть диры или файла, на который кликнул юзверь...
Подскажите плиз


Название: Re: QTreeView
Отправлено: KuZ от Март 24, 2010, 20:16
Ну вот вроде так, сам новичек в кьюте если, что поправеть.

Код
C++ (Qt)
class ModView : public QWidget
{
   Q_OBJECT
private:
   QDirModel *mod;
   QTreeView *view;
   QLabel *lbl;
public:
   ModView(QWidget *wgt = 0);
private slots:
   void slot(QModelIndex m);
};
 



Код
C++ (Qt)
ModView::ModView(QWidget *wgt) : QWidget(wgt)
{
   view = new QTreeView(this);
   mod = new QDirModel(this);
   lbl = new QLabel("",this);
   view->setModel(mod);
   connect(view,SIGNAL(clicked(QModelIndex)),SLOT(slot(QModelIndex)));
   QVBoxLayout *lay = new QVBoxLayout(this);
   lay->addWidget(view);
   lay->addWidget(lbl);
}
void ModView::slot(QModelIndex m)
{
   lbl->setText(mod->data(m,QDirModel::FilePathRole).toString());
}
 


Название: Re: QTreeView
Отправлено: B_u_R_n от Март 25, 2010, 14:17
Спасибо, разобрался
Только вот почему-то я получаю пустую строку если кликаю на файл в той дире которая отображенна, а если тыкнуть на директорию я получаю путь директории и после тыкнуть на корневой файл выше этой директории то все нормально становится