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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Не имена файлов в QListView  (Прочитано 4464 раз)
andech
Гость
« : Май 21, 2010, 17:42 »

Здравствуйте, подскажите пожалуйста, как сделать, чтобы QListView выводил не полные имена файлов, а, например, в моём случае, имя файла без расширения в конце и время создания.
У меня в QListView выводятся имена звуковых файлов из директории rootDir вот этой простой функцией:
Код:
void MainWindow::Listing()
{  
    dirView.setRootPath(rootDir.absolutePath());
    ui->listView->setModel(&dirView);
    ui->listView->setRootIndex(dirView.index(rootDir.absolutePath()));
}
Записан
crossly
Гость
« Ответ #1 : Май 21, 2010, 18:15 »

написать делегат
Записан
kibsoft
Хакер
*****
Offline Offline

Сообщений: 625


Просмотр профиля WWW
« Ответ #2 : Май 21, 2010, 18:37 »

Код:
написать делегат
Зачем? Просто надо наследовать QFileSystemModel и переопределить data ( const QModelIndex &, int ) const для Qt::DisplayRole роли.
Записан

http://kibsoft.ru - Download the Qt Media Encoding Library here

The apps that were written using QtMEL:
http://srecorder.com - Screen recording software
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #3 : Май 22, 2010, 05:09 »

>> Просто надо наследовать QFileSystemModel и переопределить data
а по-моему делегат как раз проще будет.
Да и вообще это огород, нужно несколько столбцов - используйте вместо списка таблицу
Записан

Юра.
andech
Гость
« Ответ #4 : Май 22, 2010, 16:12 »

У меня в классе MainWindow определена переменная QDir rootDir, из которой можно вытащить дату создания файла. Каким образом можно, не создавая объект класса MainWindow в делегате, вытащить дату создания из rootDir?
Вот так получается то, что нужно, но выводит оооочень медленно:
Код
C++ (Qt)
void MyDelegate::paint (QPainter *painter, const QStyleOptionViewItem &option,
           const QModelIndex &index) const
{
   MainWindow *tmp = new MainWindow;
   tmp->rootDir.setPath(tmp->settings.value("/Settings/path", "E:/DictoRecs").toString());
   painter->drawText(option.rect, tmp->rootDir.entryInfoList().value(index.row()).baseName()+"\n"+tmp->rootDir.entryInfoList().value(index.row()).suffix()+"\n"+tmp->rootDir.entryInfoList().value(index.row()).created().toString());
}
А таблица не подходит потому, что в ней вся информация выводится в столбцах, а мне нужно именно в несколько строк одним столбцом.
« Последнее редактирование: Май 22, 2010, 16:14 от andech » Записан
Kolobok
Гость
« Ответ #5 : Май 22, 2010, 17:52 »

Это настолько все неправильно, что я аж растерялся. Советую пойти почитать асистент и посмотреть кутешные примеры.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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