(PY) QT에서 균일 한 종횡비로 스케일링을 허용하는 방법?
-
06-07-2019 - |
문제
Qlabel 안에 Qimage를 감은 경우 창을 크기를 조정하고 종횡비를 유지할 때 확장 또는 아래로 확장 할 수 있습니까 (이미지가 왜곡되지 않음)? SetScaledContents ()를 사용하여 확장 할 수 있다는 것을 알았으며 최소 및 최대 크기를 설정할 수 있지만 이미지는 여전히 측면을 잃습니다.
이것이 Python을 사용하여 설명 할 수 있다면 좋을 것입니다 (C ++를 모르기 때문에). 그러나 내가 얻을 수있는 것을 가져갈 것입니다. :-)
미리 감사드립니다!
해결책
나는 이것을 C ++로 보여주고 있습니다. 이것이 내가보고있는 문서가있는 것입니다. Python으로 변환하는 것은 너무 어렵지 않아야합니다.
사용자 정의 파생물을 만들어야합니다 QLayoutItem
, 그것은 무시합니다 bool hasHeightForWidth()
그리고 int heightForWidth( int width)
어떻게 든 종횡비를 보존합니다. 이미지를 전달하고 쿼리하거나 비율을 직접 설정할 수 있습니다. 또한 확인해야합니다 widget()
함수는 적절한 레이블에 대한 포인터를 반환합니다.
완료되면 위젯과 같은 방식으로 레이아웃에 레이아웃 항목을 추가 할 수 있습니다. 따라서 레이블이 추가되면 사용자 정의 레이아웃 항목 클래스를 사용하도록 변경하십시오.
나는 실제로 이것을 테스트하지 않았 으므로이 시점에서 이론적 해결책입니다. 디자이너를 통해이 솔루션을 수행하는 방법은 모르겠습니다.
다른 팁
이미지를 a로 변환하십시오 QPixmap
(사용 QPixmap.fromImage(img)
) 그리고 당신은 사용할 수 있습니다 scaledToHeight()
.