Название: Помогите установить фильтр в QDirModel на определенный формат файлов.. Отправлено: BaHeK от Апрель 22, 2010, 00:21 Для начала хочу сказать, что я в Qt вообще еще ничего не писал... Вот задали курсач, прочитал книгу, но опыта как такового нету... прошу помощи... В общем суть такая... Мне нужно сделать, чтобы в одной части виджета отображалось дерево каталогов и при нажатии на элемент дерева, в нижней части отображались, скажем, файлы графического формата... читал про QSortFilterProxyModel, пробовал, но все никак... вот что пишу... помогите...
m_ptrDirModel = new QDirModel; m_ptrDockRightPanel = new QDockWidget; m_ptrTabWidgetRightDock = new QTabWidget; m_ptrAudioFilterModel = new QSortFilterProxyModel; m_ptrAudioFilterModel->setSourceModel(m_ptrDirModel); // Сделал так, потому что когда связываешь две разные модели, то setRootIndex(..) ругается... тут тоже помощи попросил бы... как сделать, чтобы обмениваться, чтоль, индексами между разными моделями, и возможно ли такое....? m_ptrTreeView = new QTreeView; m_ptrTreeView->setModel(m_ptrAudioFilterModel); m_ptrListView = new QListView; m_ptrListView->setModel(m_ptrAudioFilterModel); connect(m_ptrTreeView,SIGNAL(clicked(QModelIndex)),m_ptrListView,SLOT(setRootIndex(QModelIndex))); connect(m_ptrTreeView,SIGNAL(clicked(QModelIndex)),this,SLOT(slotSetAudioFilter())); QPushButton *pCmdGoToRoot = new QPushButton("Root"); connect(pCmdGoToRoot,SIGNAL(clicked()),this,SLOT(slotSetRoot())); //Как реализовать слот slotSetRoot(), тоесть просто установить дерево в начало... и естесственно чтобы список с поддерживаемыми графическими, в данном случае, файлами отображал содержимое текущего каталога.. QVBoxLayout *pVBoxLayout = new QVBoxLayout; pVBoxLayout->addWidget(pCmdGoToRoot); pVBoxLayout->addWidget(m_ptrTreeView); pVBoxLayout->addWidget(m_ptrListView); QWidget *pWgt = new QWidget; pWgt->setLayout(pVBoxLayout); m_ptrTabWidgetRightDock->addTab(pWgt,QIcon("ico/Audio.ico"),"Audio"); m_ptrTabWidgetRightDock->addTab(new QLabel("Video",this),QIcon("ico/Video.ico"),"Video"); m_ptrTabWidgetRightDock->addTab(new QLabel("Images",this),QIcon("ico/Pic.ico"),"Images"); m_ptrTabWidgetRightDock->setFixedWidth(220); m_ptrDockRightPanel->setWidget(m_ptrTabWidgetRightDock); addDockWidget(Qt::LeftDockWidgetArea,m_ptrDockRightPanel); Название: Re: Помогите установить фильтр в QDirModel на определенный формат файлов.. Отправлено: alexman от Апрель 22, 2010, 08:34 void QDirModel::setFilter ( QDir::Filters filters )
void QDirModel::setNameFilters ( const QStringList & filters ) Попробуй так (сам я не пробовал): QStringList filter; filter.append( "*.png" ); filter.append( "*.xpm" ); filter.append( "*.jpg" ); model->setNameFilter( filter ); Название: Re: Помогите установить фильтр в QDirModel на определенный формат файлов.. Отправлено: BaHeK от Апрель 22, 2010, 17:25 Спасибо, чуть позже проверю... ;)
|