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);
|