2011-12-31 31 views
10

Tôi muốn hiển thị một hình ảnh trong pyqt như vậy, tôi đã sử dụng nhãn và tùy chọn pixmap và scaledContents nhưng hình ảnh bị méo. Tôi có sử dụng tiện ích con khác hoặc làm điều gì khác không? Cảm ơn.PyQt: Làm cách nào để hiển thị hình ảnh đúng cách?

Đây là mã:

from PyQt4 import QtCore, QtGui 
self.label.setPixmap(QtGui.QPixmap(_fromUtf8('image.jpg'))) 
self.label.setScaledContents(True) 

tôi sử dụng QtDesigner.

Tôi đã thử điều này: self.label.pixmap().scaled(QtCore.QSize(self.label.size()), QtCore.Qt.KeepAspectRatio, QtCore.Qt.FastTransformation)

nhưng hình ảnh không được thu nhỏ lại cho vừa với nhãn.

+0

Cần mã để giúp đỡ. –

Trả lời

12

Sử dụng phương pháp scaled(const QSize, Qt::AspectRatioMode, Qt::TransformationMode) của pixmap, nó có tùy chọn Qt::KeepAspectRatio không làm biến dạng hình ảnh. Giá trị mặc định là bỏ qua tỉ lệ

Ngoài ra, lưu ý rằng phương pháp scaled trả về quy mô pixmap, vì vậy nó phải được sử dụng theo cách này:

myPixmap = QtGui.QPixmap(_fromUtf8('image.jpg')) 
myScaledPixmap = myPixmap.scaled(self.label.size(), Qt.KeepAspectRatio) 
self.label.setPixmap(myScaledPixmap) 
+0

Bạn có thể cho tôi một ví dụ không? – GiannisIordanou

+0

self.label.pixmap() được chia tỷ lệ (QSize (self.label.size(), Qt.KeepAspectRatio, Qt.FastTransformation), Cuối cùng bạn có thể chọn một kích thước khác – Gianluca

+0

Tôi nếu tôi sử dụng ở trên sau: self.label .setPixmap (QtGui.QPixmap (_fromUtf8 ('image.jpg'))) nó đưa ra một lỗi, cú pháp không hợp lệ – GiannisIordanou

0

yourPixmapLabel.setScaledContents (True) chia tỷ lệ bản đồ để lấp đầy không gian trống và phải đủ. nếu không, hãy để chúng tôi xem một số mã số cũ

Các vấn đề liên quan