3

我已经定义了一个小部件,它包含一个应该显示包装文本的 QLabel(和其他元素)。此 QLabel 具有:
水平策略:最小
垂直策略:MinimumExpanding
WordWrap:true

该小部件具有:
LayoutSizeConstraint: SetMinimumSize

除此之外,我还有另一个包含 QListWidget 项的小部件。我想根据需要多次添加带有 QLabel 的小部件。为此,我使用了一个助手:

QListWidgetItem* showWidgetOnTheList(QListWidget* view, QWidget* widget)
{
    QListWidgetItem *item = new QListWidgetItem(view);
    QSize size(view->size().width(), widget->height());
    item->setSizeHint(size);
    view->addItem(item);
    view->setItemWidget(item,widget);
    return item;
}

最终结果是我看到了相互重叠的元素。什么是正确的解决方案?

4

1 回答 1

1

如果你想使用setMinimumSize(),QLabel并且QLabel有父级。使用 aQGridLayout作为小部件的父级。布局应用它的孩子的最小尺寸。

如果您不想使用QGridLayout,您可以setMinimumSize()为父级设置适当的值。这个值是所有它的孩子的最小尺寸的总和。

于 2014-11-21T11:41:08.520 回答