【发布时间】:2010-09-10 13:59:43
【问题描述】:
如何改变QListWidget 的行为,使其调整高度而不是选择(看似任意的)高度并添加滚动条?见截图:
QListView 应该在水平方向上填满尽可能多的空间(如果您愿意的话,可以创建尽可能多的“列”。)然后它们会根据需要包装并创建尽可能多的行以容纳所有项目。这些计算应在调整窗口大小时进行调整。这一切都很好。
但是,我想要发生的是,QListView 应该垂直增长或收缩,而不是高度保持不变,并且永远不需要任何滚动条。如有必要,滚动将在托管所有标签和列表的父 QWidget 上处理。似乎一旦建立了QListWidget 的高度(不确定它的默认值来自哪里),它就永远不会改变。在某些情况下它太大(参见上面的第二个“测试”列表)而在其他情况下太小(参见上面的第一个“空白地图”列表。)
上面的布局并不令人惊讶:两个QLabel 和两个QListWidget 在一个QVBoxLayout. 下面是我在QListWidget 上设置的属性:
setMovement(QListView::Static);
setResizeMode(QListView::Adjust);
setViewMode(QListView::IconMode);
setIconSize(QSize(128, 128));
(我已经尝试设置水平和垂直滚动条策略,但这只是关闭滚动条,剪切内容。不是我想要的。)
【问题讨论】:
标签: c++ qt qlistview qlistwidget