Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Qt i QFileSystemModel, jedno pitanje

[es] :: C/C++ programiranje :: Qt i QFileSystemModel, jedno pitanje

[ Pregleda: 1620 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

2paca.zwaka
Nikola Ninkovic
Web Developer
BTGPort
Trebinje, RS/BiH

Član broj: 277023
Poruke: 126
*.teol.net.



+7 Profil

icon Qt i QFileSystemModel, jedno pitanje14.11.2011. u 19:31 - pre 151 meseci
Koristim qt creator i ovo mi je prvi put da koristim ViewModel pattern u qt.
Koristio sam nesto veoma slicno u WPF (Model-View-ViewModel)
Konkretno ovde koristim objekat tipa QFileSystemModel*i hocu da prikazem sve foldere kao na slici.
Slika
Ali imam jedan problem a to je ovo u crvenom kvadraticu.
Folder cije je ime "." je trenutno odabrani folder u ovom slucaju QtSDK a folder sa imenom ".." je C:/
Kako da uklonim ove foldere iz treeView-a tj. njegovom modela koji zapravo ne postoje ?

Hvala unapred

while(I->AmAlive()){
I->DoSomeProgramming();
}
 
Odgovor na temu

glorius
Damir Nikolic
C++ developer
SR

Član broj: 4366
Poruke: 428
*.dynamic.isp.telekom.rs.

ICQ: 208550327


+14 Profil

icon Re: Qt i QFileSystemModel, jedno pitanje16.11.2011. u 17:51 - pre 151 meseci
Koliko sam razumeo, ti zelis da se "." i ".." ne prikazuju u TreeView.

Ideja je da customizujes ponasanje modela QFileSystemModel.
Nasledis klasu i overrideujes funkciju koja je odgovorna za prosledjivanje podataka View-u a to je
virtual QVariant data ( const QModelIndex & index, int role = Qt::DisplayRole ) const

koja je virtualna tako da ces moci da dodas svoju funkcionalnost.

Code:
 

class MyFileSystemModel : public QFileSystemModel

......

QVariant MyFileSystemModel ::data ( const QModelIndex & index, int role /*= Qt::DisplayRole*/ ) const
{
    if(role == Qt::DisplayRole)
   {
         QString folderName = QFileSystemModel::data(index, role).toString();
         if(folderName == "." || folderName == "..")
         {
               return QVariant();
         }
   }
   
   // 'difoltno' ponasanje u slucaju da imena foldera nisu "." || ".."
   return QFileSystemModel::data(index, role);







[Ovu poruku je menjao glorius dana 16.11.2011. u 20:00 GMT+1]

[Ovu poruku je menjao glorius dana 17.11.2011. u 00:50 GMT+1]
EOF
 
Odgovor na temu

2paca.zwaka
Nikola Ninkovic
Web Developer
BTGPort
Trebinje, RS/BiH

Član broj: 277023
Poruke: 126
*.teol.net.



+7 Profil

icon Re: Qt i QFileSystemModel, jedno pitanje25.11.2011. u 18:56 - pre 151 meseci
Hvala na odgovoru ali sam naisao na bolje resenje.
Code:

this->folderModel->setFilter(QDir::Dirs | QDir::NoDotAndDotDot);

while(I->AmAlive()){
I->DoSomeProgramming();
}
 
Odgovor na temu

[es] :: C/C++ programiranje :: Qt i QFileSystemModel, jedno pitanje

[ Pregleda: 1620 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.