Python tech/Python Experience

[PyQt5] QPixmap에서 jpg 파일이 보이지 않는 현상 해결

콜레오네 2020. 12. 28. 01:04

PyQt5로 프로그램을 만들던 도중 문제가 발생했다.

 

QPixmap으로 이미지를 보여주려는데

jpg 이미지가 보여지지 않는 것....

png 이미지는 정상적으로 보여진다. 

 


원인을 찾아보는 도중

print(QtGui.QImageReader.supportedImageFormats())

를 통해 QPixmap에서 불러와지는 이미지 포맷 형식을 알아보니,,, jpg가 없었다.

 

QPixmap 이미지 포맷

지원하는 이미지 포맷은 다음과 같다.

[PyQt5.QtCore.QByteArray(b'bmp'), PyQt5.QtCore.QByteArray(b'pbm'), PyQt5.QtCore.QByteArray(b'pgm'), 
PyQt5.QtCore.QByteArray(b'png'), PyQt5.QtCore.QByteArray(b'xpm'), PyQt5.QtCoreQByteArray(b'xbm'),
PyQt5.QtCore.QByteArray(b'ppm')]

해결 방법

우선, 내가 해결한 방법은 환경변수를 추가로 설정해주는 것이다.

직접 환경변수를 설정하진 않았고, 다음 코드를 통해 프로그램 내에서 환경변수를 설정하도록 하였다.

qt_path= os.path.dirname(PyQt5.__file__)
os.environ['QT_PLUGIN_PATH'] = os.path.join(qt_path, "Qt/plugins")

그러니 jpg 이미지도 정상적으로 보여지게 되었다.


이 방법 이전에 시도해보았던 방법

1. Python 설치 경로에 python.exe가 있는 곳에 platforms 파일을 생성하라는 것
혹은
2. PyQt 라이브러리 설치 경로에 plugins 폴더 안에 platforms 파일을 생성하라는 것

 

혹시 몰라서 두 경로에 모두 platforms 폴더를 생성했지만, 아무런 변화가 없었다.

구글을 뒤진 결과, platforms로 해결했다는 사람들이 꽤 있는 것으로 보아,

다른 사람은 이 방법으로 해결할수 있지 않을까 해서 추가로 기재한다.

 

platforms 폴더는 아래에 압축 파일로 올려놓을테니, 필요하면 다운받아 사용하시면 된다.

 

platforms.zip
1.54MB

 

반응형