繁体   English   中英

将项目小部件宽度(列表内容)调整为父级QListWidget宽度

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM