2016-10-30 6 views
0

이미지를로드하고 싶습니다. 버튼을 클릭하면 이미지의 작은 픽셀 만 나타납니다.Python PyQt5 : 이미지가로드되지 않습니다.

enter image description here

class MyWindow(QWidget): 
    def __init__(self): 
     super().__init__() 
     self.resize(1000, 1000) 
     self.setWindowTitle("MyWindow") 
     self.setWindowIcon(QIcon("myIcon.ico")) 
     self.setMaximumSize(width, height) 
     self.setMinimumSize(1000, 1000) 

     self.canvas = QGroupBox(self) 
     self.canvas.setStyleSheet("QGroupBox { border: 1px solid #9F9B9B}") 
     self.canvas.move(350, 30) 
     self.canvas.resize(210, 220) 

     self.bImage = QPushButton("Load Image", self) 
     self.bImage.move(150, 207) 
     self.bImage.clicked.connect(self.openImage) 

     self.show()  

    def openImage(self):      
     self.label = QLabel(self) 
     self.preview = QPixmap("image.png") 
     self.label.setPixmap(self.preview) 
     self.label.move(350, 30)  

그러나 이상하게도 나는 초기화() 연료 소모량의 첫 번째 라인에 openImage() 함수에서 코드를 배치하면 이미지는 다음과 같습니다

그것은 그렇게 보인다 완전히 표시됩니다.

openImage() 함수로 전체 이미지를로드하려면 어떻게해야합니까?

답변

1

일반적으로 절대 값을 사용하여 위젯을 배치하는 것은 좋지 않습니다. 가능할 때마다 항상 레이아웃을 사용해야합니다. 이미지가 표시되지 않는 이유는 레이블을 그룹 상자 인 뒤의 위치로 이동했기 때문입니다. 대신, 레이아웃에 레이블을 넣어야합니다. 그룹 상자

class MyWindow(QtGui.QWidget): 
    def __init__(self): 
     ... 
     self.canvas = QtGui.QGroupBox(self) 
     ... 
     self.label = QtGui.QLabel(self) 

     layout = QtGui.QVBoxLayout(self.canvas) 
     layout.addWidget(self.label) 
     ...  

    def openImage(self): 
     self.preview = QtGui.QPixmap("image.png") 
     self.label.setPixmap(self.preview) 
관련 문제