博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《Qt编程的艺术》——8.2 显示目录层次
阅读量:6084 次
发布时间:2019-06-20

本文共 1218 字,大约阅读时间需要 4 分钟。

现在我们准备通过创建一个小程序来获得关于InterView的实践经验,使用QDirModel和拿来就用的view,来在四个不同的view中显示主目录,如图8.5所示。在代码里,除了例行公事先实例化一个QApplication对象外,我们再实例化一个QDirModel。
 
在这里,你要不得不再一次记住,作为一个例外,我们在堆(heap)上分配model,而不是在栈(stack)上,因为我们的整个代码在main()方法里面(见31页上的1.2.2)。
 
之后,我们指定在view操作之下的目录。因为所有的view相互独立地访问model,我们也必须分别设定它们的index。总之,我们只需要显示控件(widget)然后开始事件循环。程序的代码如下所示:
 
// diransichten/main.cpp#include 
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();}

 

 

你可能感兴趣的文章
uva 10107 - What is the Median?
查看>>
Linux下基本栈溢出攻击【转】
查看>>
c# 连等算式都在做什么
查看>>
使用c:forEach 控制5个换行
查看>>
java web轻量级开发面试教程摘录,java web面试技巧汇总,如何准备Spring MVC方面的面试...
查看>>
使用ansible工具部署ceph
查看>>
linux系列博文---->深入理解linux启动运行原理(一)
查看>>
Android反编译(一) 之反编译JAVA源码
查看>>
结合当前公司发展情况,技术团队情况,设计一个适合的技术团队绩效考核机制...
查看>>
python-45: opener 的使用
查看>>
cad图纸转换完成的pdf格式模糊应该如何操作?
查看>>
Struts2与Struts1区别
查看>>
网站内容禁止复制解决办法
查看>>
Qt多线程
查看>>
我的友情链接
查看>>
想说一点东西。。。。
查看>>
css知多少(8)——float上篇
查看>>
NLB网路负载均衡管理器详解
查看>>
水平添加滚动条
查看>>
PHP中”单例模式“实例讲解
查看>>