Portál AbcLinuxu, 3. listopadu 2025 04:39
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.