zoukankan      html  css  js  c++  java
  • 《Qt编程的艺术》——8.2 显示目录层次

    现在我们准备通过创建一个小程序来获得关于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 <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();
    }


     
  • 相关阅读:
    C语言单链表创建,插入,删除
    Java乔晓松spring构造函数的注入以及null的注入
    sentilib_语料库项目_search模块的实现
    spring入门(6)set方法注入依赖之null的注入
    Java乔晓松使用Filter过滤器清除网页缓存
    漂亮的弹框
    C#判断各种字符串(如手机号)
    视频数字水印
    数据校验
    SVN 常见问题操作总结
  • 原文地址:https://www.cnblogs.com/pangblog/p/3275652.html
Copyright © 2011-2022 走看看