Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mengubah Saiz QLabel untuk Mengekalkan Nisbah Aspek QPixmap?
Qt: Saiz semula QLabel untuk Mengekalkan Nisbah Aspek QPixmap
Anda berusaha untuk memaparkan QPixmap di dalam QLabel yang melaraskan saiznya sambil mengekalkan nisbah aspek asal.
Penyelesaian:
Untuk mencapai matlamat ini, anda boleh memanfaatkan kaedah QSizePolicy dan sizeHint() tanpa memerlukan subkelas.
Pelarasan QSizePolicy:
Pilih dasar saiz yang sesuai untuk QLabel anda, seperti QSizePolicy::Expanding atau QSizePolicy::MinimumExpanding. Ini akan membolehkan label berkembang atau mengecut mengikut ruang yang tersedia.
Memelihara Nisbah Aspek:
Apabila QPixmap berubah, anda boleh menskalakannya sambil mengekalkan nisbah aspeknya :
<code class="cpp">int w = label->width(); int h = label->height(); label->setPixmap(p.scaled(w,h,Qt::KeepAspectRatio));</code>
Pengendalian Acara:
Tambahkan kod ini pada dua tempat utama:
Atas ialah kandungan terperinci Bagaimana untuk Mengubah Saiz QLabel untuk Mengekalkan Nisbah Aspek QPixmap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!