Portál AbcLinuxu, 10. května 2025 08:09
QDirModel
jsem zobrazil adresář v QListView
, v něm označil položku (podadresář) a cestu k němu (filePath) si uložil do konfigurace aplikace. Bohužel jsem už ale nepřišel na to, jak po opětovném spuštění aplikace tuto položku vybrat/označit v původním QListView
(nebo v QDirModel
)?
// model backgroundsModel = new QDirModel(this); backgroundsModel->setFilter(QDir::Dirs | QDir::NoDotAndDotDot | QDir::Readable); BackgroundFileIconProvider *provider = new BackgroundFileIconProvider(); backgroundsModel->setIconProvider(provider); // QListView je vytvořen v Qt Designeru ui->backgroundListView->setModel(backgroundsModel); ui->backgroundListView->setRootIndex(backgroundsModel->index("/cesta")); QString path = settings->value("backgroundPath"); // a co teď s path???Hádám, že je to naprosto triviální záležitost - já se s tím mořím už pár hodin (ale alespoň jsem nastudoval dalších XX tříd ;) Díky za nasměrování.
Řešení dotazu:
QDirModel::index
a QAbstractItemView::setCurrentIndex
nějak takto:
QString path = settings->value("backgroundPath"); QModelIndex index = backgroundsModel->index(path); if(index.isValid()) ui->backgroundListView->setCurrentIndex(index);
QModelIndex QDirModel::index ( int row, int column, const QModelIndex & parent = QModelIndex() ) consta tahle funkce mi nějak unikla.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.