寻找在具有多列的Q3ListView中发生水平滚动的问题的答案。我假设Q3ListView是用来快速升级到4.x的。遗留代码,我的任务是让这个东西可以水平滚动。
list视图有两列,第一列包含右侧内容的标题,因此它总是显示全文,因为没有一个文本很长。第二列的文本可能比我的24英寸屏幕所能显示的要宽(当我将鼠标移到它上面并查看工具提示时就会看到)。
在设计器中创建Q3ListView对象时,vScrollBarMode和hScrollBarMode都设置为“自动”(默认设置)。因为条目的数量相当大,所以总是显示垂直滚动条,我可以上下滚动。当我看到第二列中的数据对于可用宽度来说太长时,它总是有一个省略号(...)在末尾没有显示水平滚动条。如果我在Designer中将水平回滚的定义更改为AlwaysOn,我会看到水平滚动条,但它是灰色的,并且没有句柄,即使文本对于可见区域来说太长了。
我只是想知道怎样才能为我的Q3ListView设置一个可以滚动显示第二栏全文的水平滚动条。有什么建议吗?
--
附言:刚刚尝试了一些新的东西。我对Q3ListView对象的第二列调用了setColumnWidthMode()函数,如下所示:
myUi.myValueList->setColumnWidthMode(1, Q3ListView::Maximum);
没有任何不同。在长文本的末尾仍然有一个省略号。
发布于 2014-03-15 09:49:50
我使用Qt3已经有一段时间了:)
我甚至没有可以试用的构建版本,因为我所有的版本都是编译的,没有Qt3阻塞二进制文件。
然而,我期待的是:
setColumnWidthMode(1, Q3ListView::Maximum);
会做你想做的事。
如果不是,那么何时执行此操作的时机可能是您的方案中的一个因素。
例如,它可能取决于您是否已经添加了第二列,或者取决于同时清除并重置的内容。这是因为我认为宽度模式存储在列本身上,因此删除和添加列将意味着清除模式设置。
另一种方法是当您调用
addColumn(标签,宽度);
使用宽度-1将宽度模式设置为最大值。
您可以尝试使用
setColumnWidth(W);
一些保证足够大的东西,看看它是否有你所期望的效果。
如果不是,那么一定要检查事件的顺序,因为您的列可能会在其他地方重新配置,从而覆盖您的更改。
https://stackoverflow.com/questions/22386383
复制相似问题