내 앱에 이미지를 표시하고 싶습니다. QtDesigner를 사용하여 UI를 디자인 한 다음 pyqt를 사용하여 코딩합니다. 문제는 표시 될 이미지가 UI의 위젯 크기보다 큰 것입니다. 다음과 같이 QT - Widget Image Viewer DemoPyQt/Qt : Qlabel 위젯에서 이미지를 늘리는 방법은 무엇입니까?
추가 imagelabel 및 scrollArea, 코드 : 나는 offical 한 데모를 참조
---- UI init ----
self.label = QtGui.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(40, 140, 361, 511))
self.label.setSizePolicy(QtGui.QSizePolicy.Preferred,QtGui.QSizePolicy.Preferred)
self.label.setObjectName(_fromUtf8("label"))
self.scrollArea = QtGui.QScrollArea(self.centralwidget)
self.scrollArea.setGeometry(QtCore.QRect(40, 140, 361, 511))
self.scrollArea.setWidget(self.label)
self.scrollArea.setObjectName(_fromUtf8("scrollArea"))
---- function ----
filename = "./Penguins.jpg"
image = QtGui.QImage(filename)
pp = QtGui.QPixmap.fromImage(image)
lbl = QtGui.QLabel(self.label)
lbl.setPixmap(pp)
self.scrollArea.setWidgetResizable(True)
lbl.show()
하지만 이미지를 스트레칭하지 않습니다, 심지어 더 스크롤 막대가 표시되지 않습니다!
나는 "self.label.setScaledContents (참) 추가 필요 (하지만 최대) 경우
이 작은 도우미는 항상 유지, 라벨의 최대 크기에 맞게 가로 세로 비율을 이미지를 축소한다 "내 코드에서,하지만 여전히 작동하지 않습니다! 위의 코드를 볼 수 있습니다. labelArea의 크기를 레이블 크기와 같게 설정합니다. 문제인가? – whuiscool
해결했습니다! 디버그에서 나는 'lbl = QtGui.QLabel (self.label) '이 잘못되었음을 발견했습니다. – whuiscool