// diransichten/main.cpp
#include <QtGui>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QDirModel dirModel;
QWidget w;
w.setWindowTitle(QObject::tr("Four directory views using one model"));
QGridLayout *lay =new QGridLayout(&w);
QListView *lv =new QListView;
lay->addWidget(lv,0, 0);
lv->setModel(&dirModel);
QListView *lvi=new QListView;
lay->addWidget(lvi, 0,1);
lvi->setViewMode(QListView::IconMode);
lvi->setModel(&dirModel);
QTreeView *trv =new QTreeView;
lay->addWidget(trv,1, 0);
trv->setModel(&dirModel);
QTableView *tav =new QTableView;
tav->setModel(&dirModel);
lay->addWidget(tav,1,1);
QModelIndex cwdIndex =dirModel.index(QDir::currentPath());
lv->setRootIndex(cwdIndex);
lvi->setRootIndex(cwdIndex);
trv->setRootIndex(cwdIndex);
tav->setRootIndex(cwdIndex);
w.show();
return app.exec();
}
《Qt編程的藝術》——8.2 顯示目錄層次
現在我們準備通過創建一個小程序來獲得關於InterView的實踐經驗,使用QDirModel和拿來就用的view,來在四個不同的view中顯示主目錄,如圖8.5所示。在代碼裏,除了例行公事先實例化一個QApplication對象外,我們再實例化一個QDirModel。
在這裏,你要不得不再一次記住,作爲一個例外,我們在堆(heap)上分配model,而不是在棧(stack)上,因爲我們的整個代碼在main()方法裏面(見31頁上的1.2.2)。
之後,我們指定在view操作之下的目錄。因爲所有的view相互獨立地訪問model,我們也必須分別設定它們的index。總之,我們只需要顯示控件(widget)然後開始事件循環。程序的代碼如下所示:
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.