Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengekalkan Nisbah Aspek Apabila Memaparkan Imej dalam QLabel Qt?

Bagaimana untuk Mengekalkan Nisbah Aspek Apabila Memaparkan Imej dalam QLabel Qt?

Susan Sarandon
Susan Sarandonasal
2024-10-30 22:10:02371semak imbas

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

Memelihara Nisbah Aspek dalam QLabel Qt dengan QPixmap

Dalam Qt, memaparkan imej dalam QLabel sering menimbulkan cabaran untuk mengubah saiz sambil mengekalkan nisbah aspeknya. Ini amat penting apabila berurusan dengan perubahan dinamik dalam dimensi imej sumber.

Mengekalkan Nisbah Aspek dengan Dasar Saiz

Untuk menangani perkara ini, laraskan label QSizePolicy untuk membolehkan pengembangan atau pengembangan minimum. Contohnya:

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

Menskalakan QPixmap

Untuk menskalakan QPixmap dalam QLabel sambil mengekalkan aspek nisbah, tambah kod berikut:

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

Masukkan kod ini di dua lokasi:

  1. Apabila pixmap dikemas kini
  2. Dalam resizeEvent widget yang mengandungi label

Persediaan ini memastikan QLabel diubah saiz untuk menampung QPixmap sambil mengekalkan nisbah aspeknya, mengikut ruang yang tersedia .

Atas ialah kandungan terperinci Bagaimana untuk Mengekalkan Nisbah Aspek Apabila Memaparkan Imej dalam QLabel Qt?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn