gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 13:38:10 25 4
gpt4 key购买 nike

目标:
我正在尝试在列表中显示自定义小部件的多个实例。该小部件可能包含较长的用户定义路径,因此我有一个派生自 QLabel 的类,它可以省略 [0] 文本 (ElidedLabel)。列表项应该是可选择的,所以我使用 QListWidget 来显示它们。然后将所述自定义小部件的实例设置为每个 QListWidgetItem 的项目小部件。
ElidedLabel 按照此处的建议实现:Status bar and elided label

问题:
自定义小部件往往比显示它的 QListWidget 更宽。要使用 ElidedLabel,QListWidget 应该调整自定义小部件的大小以匹配其宽度,以便删除文本。出于某种原因,这并没有发生,自定义小部件只是被剪掉了。

我尝试过的:
我整理了一个 minimal example它演示了一个虚拟的“自定义小部件”,它可以作为主窗口中普通布局的子项很好地消除。同一个小部件没有作为项目小部件正确地省略在 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());
}

关于c++ - 将项目小部件宽度(列表内容)调整为父 QListWidget 宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28835377/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com