[英]Adjust item widget width (list content) to parent QListWidget width
目标:
我正在尝试在列表中显示自定义窗口小部件的多个实例。 该小部件可能包含较长的用户定义路径,因此我有一个从QLabel派生的类,该类可以elide [0]文本( ElidedLabel
)。 列表项应该是可选的,因此我正在使用QListWidget来显示它们。 然后,将所述定制小部件的实例设置为每个QListWidgetItem的项目小部件。
ElidedLabel的实现如下所示: 状态栏和标记标签
问题:
自定义窗口小部件往往比显示它的QListWidget宽。 为了使用ElidedLabel,QListWidget应该调整自定义窗口小部件的大小以匹配其宽度,以便消除文本。 由于某种原因,这不会发生,并且自定义窗口小部件只会被剪切。
我试过的
我整理了一个最小的示例 ,演示了一个虚拟的“自定义小部件”,该小部件可以很好地替代主窗口中普通布局的子级。 相同的窗口小部件无法正确地作为QListWidget中的项目窗口小部件消失。
在任何地方,SizePolicies都设置为Preferred
,但我感觉我也玩过其他所有东西。 ElidedLabel的minimumWidth设置为1
以使其缩小。 布局约束保留为默认值。 QListWidget的ResizeMode设置为Adjust
。
因此,不允许我发布屏幕截图,请在此处找到:ht * ps://filetrain.de/elidetest.png
[0]: 忽略 :截断不适合的文本,并用省略号('...')替换
将这两种方法添加到ElidedLabel
virtual QSize minimumSizeHint() const
{
return QSize(0, QLabel::minimumSizeHint().height());
}
virtual QSize sizeHint() const
{
return QSize(0, QLabel::sizeHint().height());
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.