RSS Feed

有关QListView和QStringListModel的操作

2009-03-15 by bborn

这两天才研究一个效果
让QListView能随着数据内容的更新
同步更新显示画面
这是个很简单的要求
Qt4在这里设计了简化的MVC模式
这里的model我选用了最简单的QStringListModel
搜索,看文档,看教程,去论坛求助,这两三天一直都没有搞定这个简单的问题
今天突然想起来Qt是开源的
才想起来去看他的源代码(我用的pyqt,压根没下源码)
终于明白了QStringListModel的写法
Qt代码的注释比它的文档还清楚和丰富

解决方法很简单
先要insertRows需要的行
再setData进去想要的内容

以后多要看Qt的源码
很有帮助

之前一种对欧洲人的思维有偏见
感觉和我们明显不同
不知道是用微软的东西而同化了
还是欧洲人的思维比较怪异

可能相关


3 条评论 »

  1. MATT 说道:

    請問可以舉例一下嗎?

    • bborn 说道:

      @MATT,
      首先应该是这样把一个QListView和QStringListModel联系起来吧
      QStringList fonts;
      fonts < < "Arial" << "Helvetica" << "Times" << "Courier";
      listmodel.setStringList(fonts);
      ui.listView->setModel(&listmodel);
      然后通过代码更新QListView
      listmodel.insertRows(0, 1);
      QString str = “hello”;
      bool ret = listmodel.setData(listmodel.index(0), str);
      其中QStringListModel listmodel;

      这些天先是放假 后是休息
      现在才想起来回复 呵呵 估计你早已经琢磨出来了吧

  2. lanmanck 说道:

    qlistview真是难用,连基本的additem都没有,还谈个屁c++易用性啊。

发表评论

电子邮件地址不会被公开。

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">