Heim > Backend-Entwicklung > C++ > Wie ändere ich die Größe eines QLabel, um das Seitenverhältnis einer QPixmap beizubehalten?

Wie ändere ich die Größe eines QLabel, um das Seitenverhältnis einer QPixmap beizubehalten?

Patricia Arquette
Freigeben: 2024-10-29 15:23:02
Original
505 Leute haben es durchsucht

How to Resize a QLabel to Maintain the Aspect Ratio of a QPixmap?

Qt: Größenänderung von QLabel zur Beibehaltung des Seitenverhältnisses von QPixmap

Sie möchten eine QPixmap in einem QLabel anzeigen, das seine Größe anpasst und dabei das Seitenverhältnis beibehält ursprüngliches Seitenverhältnis.

Lösung:

Um dies zu erreichen, können Sie die Methoden QSizePolicy und sizeHint() nutzen, ohne dass eine Unterklassenbildung erforderlich ist.

QSizePolicy-Anpassung:

Wählen Sie eine geeignete Größenrichtlinie für Ihr QLabel aus, z. B. QSizePolicy::Expanding oder QSizePolicy::MinimumExpanding. Dadurch kann das Etikett je nach verfügbarem Platz vergrößert oder verkleinert werden.

Seitenverhältnis beibehalten:

Immer wenn sich die QPixmap ändert, können Sie sie skalieren und dabei das Seitenverhältnis beibehalten :

<code class="cpp">int w = label->width();
int h = label->height();

label->setPixmap(p.scaled(w,h,Qt::KeepAspectRatio));</code>
Nach dem Login kopieren

Ereignisbehandlung:

Fügen Sie diesen Code an zwei wichtigen Stellen hinzu:

  • Pixmap-Update: Wenn die QPixmap dynamisch aktualisiert wird.
  • ResizeEvent: Im resizeEvent des Widgets, das das QLabel enthält. Dadurch wird sichergestellt, dass die Beschriftung auch dann richtig skaliert bleibt, wenn sich die Größe des Widgets ändert.

Das obige ist der detaillierte Inhalt vonWie ändere ich die Größe eines QLabel, um das Seitenverhältnis einer QPixmap beizubehalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage