• 12586阅读
  • 7回复

QTreeView的水平滚动条 [复制链接]

上一主题 下一主题
离线yangyunzhao
 

只看楼主 倒序阅读 楼主  发表于: 2009-08-18
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
MVC模式下。
model是QStandardItemModel
item是QStandardItem
view是QTreeView

当Item里面显示的内容太长时,QTreeView没有自动添加水平滚动条,而是将Item里面太长的字用...代替了。
我在代码里面设置了
treeView->setHorizontalScrollBarPolicy(Qt::ScrollBarAsNeeded);
treeView->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
却没有任何效果。但QTreeView里面Item过多的时候,会自动添加垂直滚动条。但为何不自动添加水平滚动条?
离线sdh-bing
只看该作者 1楼 发表于: 2009-08-18
遇到过同样的问题。。。期盼解决
离线mayunshen

只看该作者 2楼 发表于: 2009-08-18
使用void QTreeView::resizeColumnToContents ( int column )即可
离线yangyunzhao

只看该作者 3楼 发表于: 2009-08-19
引用第2楼mayunshen于2009-08-18 23:01发表的  :
使用void QTreeView::resizeColumnToContents ( int column )即可

用了,还是没有任何效果
离线sdh-bing
只看该作者 4楼 发表于: 2009-08-22
我用的是QTreeWidget,刚开始出现跟你一样的情况
后来把QTreeWidget设置为两列就好了(当然我只需要一列)
离线haulm

只看该作者 5楼 发表于: 2009-09-11
在设置模块时也是多加了一个不用的列就可以解决这个问题,不过最后这没用的一列要是太宽了也影响美观。
离线haulm

只看该作者 6楼 发表于: 2009-09-11
我似乎只能使用以下的模式

this->header()->setResizeMode(QHeaderView::ResizeToContents);

对某一列的宽度我设置Qt都没有效果,都搞不清该怎么处理,莫名其妙。
离线haulm

只看该作者 7楼 发表于: 2009-09-21
问题解决了,注意要在设置完model后再进行各列宽度的设置即可。
快速回复
限100 字节
 
上一个 下一个