Der Abstand des übergeordneten Stylesheets wird erst berücksichtigt, nachdem das untergeordnete Stylesheet angezeigt wir
Posted: 07 Jan 2025, 09:25
Ich lege das Stylesheet eines Widgets fest und füge dann danach ein untergeordnetes Widget hinzu. Aber es scheint, dass contentMargins() die tatsächlichen Ränder erst zurückgibt, nachdem das untergeordnete Widget angezeigt wird.
Beispielcode:
Dies ist die Ausgabe:
Beachten Sie, dass das Problem verschwinden würde, wenn ich die Reihenfolge ändern würde, d. h. das untergeordnete Widget hinzufügen bevor das Stylesheet des übergeordneten Elements festlegt.< /p>
Aber aus verschiedenen Gründen kann ich das untergeordnete Widget nicht hinzufügen, bevor ich das Stylesheet festgelegt habe, und ich muss außerdem sicherstellen, dass ich keine falschen Daten bekomme contentMargins(). Gibt es eine Problemumgehung, um dies sicherzustellen?
Beispielcode:
Code: Select all
this->setStyleSheet("QLabel {padding: 0px 5px 10px 15px;}");
QLabel *label = new QLabel(this);
qDebug() contentsMargins();
label->show();
qDebug() contentsMargins();
Code: Select all
QMargins(0, 0, 0, 0)
QMargins(15, 0, 5, 10)
Aber aus verschiedenen Gründen kann ich das untergeordnete Widget nicht hinzufügen, bevor ich das Stylesheet festgelegt habe, und ich muss außerdem sicherstellen, dass ich keine falschen Daten bekomme contentMargins(). Gibt es eine Problemumgehung, um dies sicherzustellen?