Russian Qt Forum
Ноябрь 23, 2024, 01:08 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QTreeView  (Прочитано 2828 раз)
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()));
Вот хочу получить как-то пусть диры или файла, на который кликнул юзверь...
Подскажите плиз
Записан
KuZ
Гость
« Ответ #1 : Март 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());
}
 
« Последнее редактирование: Март 24, 2010, 20:41 от KuZ » Записан
B_u_R_n
Гость
« Ответ #2 : Март 25, 2010, 14:17 »

Спасибо, разобрался
Только вот почему-то я получаю пустую строку если кликаю на файл в той дире которая отображенна, а если тыкнуть на директорию я получаю путь директории и после тыкнуть на корневой файл выше этой директории то все нормально становится
« Последнее редактирование: Март 25, 2010, 16:26 от B_u_R_n » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.082 секунд. Запросов: 21.