0

画像を読み込みたい ボタンをクリックしても、画像の小さなピクセルしか表示されません。

次のようになります。

ここに画像の説明を入力

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() 関数のコードをinit () 関数の最初の行に配置すると、画像が完全に表示されます。

openImage() 関数で画像全体をロードするにはどうすればよいですか?

4

1 に答える 1

2

一般に、絶対値を使用してウィジェットを配置しようとするのは悪い考えです。可能な限り常にレイアウトを使用する必要があります。画像が表示されない理由は、ラベルをグループ ボックスの後ろの位置に移動したためです。代わりに、グループ ボックス内のレイアウトにラベルを配置する必要があります。

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)
于 2016-10-30T17:00:11.480 に答える