3 Stimmen

<QListWidgetItem> Elemente überlappen sich.

Ich habe ein Widget definiert, das ein QLabel enthält (und andere Elemente), das umbrochenen Text anzeigen sollte. Dieses QLabel hat:
Horizontale Richtlinie: Minimum
Vertikale Richtlinie: MinimumExpanding
WordWrap: true

Das Widget hat:
LayoutSizeConstraint: SetMinimumSize

Sonst habe ich noch ein weiteres Widget, das ein QListWidget-Element enthält. Ich möchte das Widget mit QLabel so oft hinzufügen, wie ich möchte. Dazu benutze ich einen Hilfsprogramm:

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;
}

Das Endergebnis ist, dass ich Elemente sehe, die sich überschneiden. Was ist die richtige Lösung?

1voto

Ali Mofrad Punkte 318

Wenn Sie setMinimumSize() für ein QLabel verwenden möchten und das QLabel einen Elternteil hat, verwenden Sie ein QGridLayout als Elternelement Ihres Widgets. Das Layout wendet die Mindestgröße seiner Kinder an.

Wenn Sie QGridLayout nicht verwenden möchten, können Sie setMinimumSize() für das Elternelement auf den richtigen Wert setzen. Dieser Wert entspricht der Summe der Mindestgröße aller Kinder.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X