Heim  >  Artikel  >  Backend-Entwicklung  >  Wie behalte ich das Seitenverhältnis bei der Anzeige von Bildern im QLabel von Qt bei?

Wie behalte ich das Seitenverhältnis bei der Anzeige von Bildern im QLabel von Qt bei?

Susan Sarandon
Susan SarandonOriginal
2024-10-30 22:10:02371Durchsuche

How to Maintain Aspect Ratio When Displaying Images in Qt's QLabel?

Beibehalten des Seitenverhältnisses in Qts QLabel mit QPixmap

In Qt wird ein Bild in einem QLabel angezeigt stellt oft die Herausforderung dar, die Größe zu ändern und gleichzeitig das Seitenverhältnis beizubehalten. Dies ist besonders wichtig, wenn es um dynamische Änderungen in den Abmessungen des Quellbilds geht.

Beibehalten des Seitenverhältnisses mit der Größenrichtlinie

Um dieses Problem zu beheben, passen Sie die QSizePolicy des Etiketts an um eine Erweiterung oder minimale Erweiterung zu ermöglichen. Zum Beispiel:

<code class="cpp">QLabel label;
label.setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);</code>

Skalieren der QPixmap

Um die QPixmap innerhalb des QLabel zu skalieren und dabei das Seitenverhältnis beizubehalten Verhältnis, fügen Sie den folgenden Code hinzu:

<code class="cpp">QPixmap pixmap; // Assumed loaded from a source
int labelWidth = label.width();
int labelHeight = label.height();
label.setPixmap(pixmap.scaled(labelWidth, labelHeight, Qt::KeepAspectRatio));</code>

Fügen Sie diesen Code an zwei Stellen ein:

  1. Immer wenn die Pixmap aktualisiert wird
  2. Im resizeEvent des Widgets, das die Beschriftung enthält

Dieses Setup stellt sicher, dass die Größe des QLabel an die QPixmap angepasst wird, während das Seitenverhältnis entsprechend dem verfügbaren Platz erhalten bleibt .

Das obige ist der detaillierte Inhalt vonWie behalte ich das Seitenverhältnis bei der Anzeige von Bildern im QLabel von Qt bei?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn