Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengubah Saiz QLabel dengan QPixmap sambil Mengekalkan Nisbah Aspek?

Bagaimana untuk Mengubah Saiz QLabel dengan QPixmap sambil Mengekalkan Nisbah Aspek?

Linda Hamilton
Linda Hamiltonasal
2024-10-26 19:27:29118semak imbas

How to Resize a QLabel with a QPixmap while Maintaining Aspect Ratio?

Mengubah saiz QLabel dengan QPixmap Memelihara Nisbah Aspek

Untuk memaparkan QPixmap yang berubah secara dinamik dalam QLabel, anda mungkin menghadapi keperluan untuk mengubah saiz label berdasarkan ruang yang tersedia sambil mengekalkan nisbah bidang QPixmap. Soalan ini bertujuan untuk menangani cabaran ini tanpa menggunakan subkelas.

Penyelesaian

Untuk mencapai fungsi ini tanpa subkelas, pendekatan berikut boleh digunakan:

  1. Dasar Saiz Tetapan: Berikan label dasar saiz yang sesuai, seperti QSizePolicy::Expanding atau QSizePolicy::MinimumExpanding. Ini membolehkan label mengembang atau mengecut dalam bekasnya.
  2. Menskala Peta Pix Secara Dinamik: Untuk menskala peta pix sambil mengekalkan nisbah bidang setiap kali ia berubah, laksanakan langkah berikut:

    • Dapatkan dimensi semasa label (lebar dan tinggi).
    • Gunakan kaedah QLabel::setPixmap() dengan pilihan penskalaan Qt::KeepAspectRatio untuk menetapkan peta pix berskala ke label.
  3. Peletakan Kod: Kod ini boleh diletakkan di dua lokasi:

    • Apabila pixmap dikemas kini
    • Dalam pengendali resizeEvent widget yang mengandungi label

Dengan melaksanakan langkah-langkah ini, anda boleh mengubah saiz QLabel secara dinamik sambil mengekalkan nisbah aspek QPixmapnya, memastikan imej kekal berkadar dan menarik secara visual tanpa mengira ruang yang ada.

Atas ialah kandungan terperinci Bagaimana untuk Mengubah Saiz QLabel dengan QPixmap sambil Mengekalkan Nisbah Aspek?. 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