• 34144阅读
  • 19回复

如何让QListView显示多列 ?QTableView与QListView区别在哪里 ? [复制链接]

上一主题 下一主题
离线fridayboy
 
只看楼主 倒序阅读 楼主  发表于: 2008-08-02
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
QStandardItemModel *model = new QStandardItemModel;
model->setColumnCount(3);
model->setHorizontalHeaderlabel(labels);          //labels是一个3列QStringList表头
。。。。。。
QListView *view=new QListView;
view->setModelColumn(3);
view->setModel(model);


问题是视图只能显示第一列,而且表头没有显示如果换上QTableView *view=new QTableView ;就能正常显示3列,表头也是正确的。有点奇怪!(QTableView 不需要setModelColumn(3),如果QListView 不执行setModelColumn(3),也只能显示1列)
哪位高手帮帮忙,看看什么原因?感谢为先
[ 此贴被fridayboy在2008-08-02 21:58重新编辑 ]
离线fridayboy
只看该作者 1楼 发表于: 2008-08-13
看帖不回帖,不厚道啊!
离线alimyso

只看该作者 2楼 发表于: 2008-12-25
我也有同样的问题,是不是QListView只能显示一列啊,不能显示多列啊
离线landuochong
只看该作者 3楼 发表于: 2008-12-25
我觉得QListView只是现实一列的,菜单式,QTableView是表格式,多列
离线alimyso

只看该作者 4楼 发表于: 2008-12-25
但是其他开发工具下的ListView都是可以显示多列的,Qt怎么就不可以呢
离线landuochong
只看该作者 5楼 发表于: 2008-12-25
用QTableView不就可以了
离线isti

只看该作者 6楼 发表于: 2008-12-25
能把你的labels定义贴邮来嘛??
离线tracyand
只看该作者 7楼 发表于: 2011-04-26
我也遇到了相同的问题,无奈中。。。。。。。。
离线XChinux

只看该作者 8楼 发表于: 2011-05-10
简单的理解:
List,一维的数据,一个列表
Table,二维数据,一个表格

就这样。不要与其它语言/开发框架中的概念混淆。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线stlcours

只看该作者 9楼 发表于: 2014-12-09
不要与其它语言/开发框架中的概念混淆。

但是这样感觉List的存在不是很必要。Table可百分百代替List
离线roywillow

只看该作者 10楼 发表于: 2014-12-09
回 stlcours 的帖子
stlcours:不要与其它语言/开发框架中的概念混淆。
但是这样感觉List的存在不是很必要。Table可百分百代替List (2014-12-09 18:45) 

绝对不止这样
打开你的资源管理器,你看到的那些图标,列表排列、图标排列,这些就是可以靠list来实现的
excel则是可以用table来实现
你觉得他们之间可以替代?
别忘了table可是有格子的,虽然好像也能用一些很麻烦的方法给去掉
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线stlcours

只看该作者 11楼 发表于: 2014-12-09
table去掉格子很简单:
table_view->setStyleSheet("border: 0px solid blue;");

另外,你所谓资源管理器,没错,在windows体系概念里是listview,那是因为它没有tableview的概念,所以它就是相当于qt里的tableview。问你一个问题:windows里为什么只有qtableview相对应的listview,而没有qlistview相应的xxxx?
离线roywillow

只看该作者 12楼 发表于: 2014-12-10
回 stlcours 的帖子
stlcours:table去掉格子很简单:
table_view->setStyleSheet("border: 0px solid blue;");
另外,你所谓资源管理器,没错,在windows体系概念里是listview,那是因为它没有tableview的概念,所以它就是相当于qt里的tableview。问你一个问题:windows里为什么只有qtableview .. (2014-12-09 22:29) 

是吗?我没写过原生的windows代码所以不清楚
我是认为listview就是个一维数组,tableview是个二维数组
对于数组的应用,反正一维的和二维的是可以互相“替代”的,但是用一维最方便的时候为什么非要用二维的呢?用二维最方便的时候为什么要用一维的呢?确实table可以替代list,但是你得把列数定为1,列宽扩展到最大,修改显示效果,使用索引的时候始终得带上个column index = 0;如果要实现根据widget高度自动分列,还得自己去计算一遍每列最多能显示几行,然后再计算需要显示多少列,以及每列的宽度,调用item的时候还得把column加入index的计算中这人是有受虐倾向么这么能折腾自己……当然要说把这些功能都集成到tableview中,那我就无话可说了……
再比如,反正Qt提供的QString类已经够好使了,QList类也够好使了,为什么非要提供QStringList类呢?自己努力一下就能实现的类,Qt为啥还刻意给咱们实现好了,去提供这个方便?
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线stlcours

只看该作者 13楼 发表于: 2014-12-10
哈哈哈,楼上到底是修航天飞机的,说的都有理,我接受你的意见。

不过话说回来,VC和Delphi为什么就没有提供这样的一维控件呢?特别是Delphi可以如此方便的自定义控件,并提供了一些Windows标准控件所没有的控件,但是它同样没有提供这个一维控件。所以让我再想一想。虽然这个问题其实不重要。
离线roywillow

只看该作者 14楼 发表于: 2014-12-11
回 stlcours 的帖子
stlcours:哈哈哈,楼上到底是修航天飞机的,说的都有理,我接受你的意见。
不过话说回来,VC和Delphi为什么就没有提供这样的一维控件呢?特别是Delphi可以如此方便的自定义控件,并提供了一些Windows标准控件所没有的控件,但是它同样没有提供这个一维控件。所以让我再想一想。虽然这个问 .. (2014-12-10 23:31) 

我觉得是“傻瓜化”程度的不同吧
Qt的很多新类都是之前各路人马已经实现过多少次了,最后Qt官方还是特意提供了这些类,比如有个录制快捷键的文本框,我花了三天给完善了功能,结果一个新版Qt就直接有现成的了……
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线stlcours

只看该作者 15楼 发表于: 2014-12-11
说的对!我觉得QT已经把你所想到的一切都做好了,而且文档十分完善,确实了不起。不仅如此,还做了VS官方插件,使用十分方便。就这样,QT还是半流行不流行的,不温不火,是市场太挑,还是其它什么因素在阻碍QT的流行?

话说回来,QT的Model View结构,我一直都觉得不太好理解,也不太好用(也许还是我用的少的缘故,不过让我这个老手觉得不好用且难以理解,也不多见)。兄台讲几篇心得,或者帮我推荐几篇文章怎么样?
离线roywillow

只看该作者 16楼 发表于: 2014-12-11
回 stlcours 的帖子
stlcours:说的对!我觉得QT已经把你所想到的一切都做好了,而且文档十分完善,确实了不起。不仅如此,还做了VS官方插件,使用十分方便。就这样,QT还是半流行不流行的,不温不火,是市场太挑,还是其它什么因素在阻碍QT的流行?
话说回来,QT的Model View结构,我一直都觉得不太好理解,也 .. (2014-12-11 20:07) 

其实我也是不到万不得已不会去碰这个架构的……
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线stlcours

只看该作者 17楼 发表于: 2014-12-11
我知道,刚开始学这个模型的时候想搜一下listview和listwidget的区别,就用google搜出你的一个回答(只记得你的头像了,应该是你):使用QTableWidget使用比较方便。对你这句话还印象还挺深的,虽然这句话没讲具体内容。

再请教一个问题:
QToolButton *m_execbtn;
m_execbtn = new QToolButton(this);
m_execbtn->setShortcut(Qt::Key_F9);
设置快捷键不起作用。整个程序里就这一处快捷键,没有冲突一说。同时我也没有使用Action
离线84211698

只看该作者 18楼 发表于: 2015-01-05
我在高级QT编程里,看过,作者说QLISTVIEW跟QTABLEVIEW的区别就是多了几列。貌似不用太纠结这个问题。
离线stlcours

只看该作者 19楼 发表于: 2015-01-05
谢谢楼上,我们在讨论它的哲学设计思想,而不纠结它的使用。
快速回复
限100 字节
 
上一个 下一个