2017-04-15 9 views
0

ボックスレイアウト内にスクロールバーを含む画像ラベルを表示しようとしています。 ただし、スクロール領域が間違った場所に間違ったサイズで表示されます。 私が間違っていることを教えてください。PyQt5:QScrollAreaがラベルに添付されない

import sys 
from PyQt5 import QtCore 
from PyQt5.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QWidget, QPushButton, QLabel, QScrollArea 
from PyQt5.QtGui import QPixmap 


class ApplicationWindow(QMainWindow): 
    def __init__(self): 
     QMainWindow.__init__(self) 

     main_widget = QWidget(self) 

     btn = QPushButton("Bye", self) 
     btn.clicked.connect(self.close) 

     img = QPixmap("1.jpg") 
     label = QLabel(main_widget) 
     label.setPixmap(img) 

     scrollArea = QScrollArea(main_widget) 
     scrollArea.setWidgetResizable(True) 
     scrollArea.setWidget(label) 

     l = QVBoxLayout(main_widget) 
     l.addWidget(label) 
     l.addWidget(btn) 

     self.setCentralWidget(main_widget) 


    def closeEvent(self, ce): 
     self.close() 

if __name__ == '__main__': 
    app = QApplication(sys.argv) 
    aw = ApplicationWindow() 
    aw.show() 
    app.exec_() 

結果は次のとおりです。

screenshot

答えて

0

問題ではなくQVBoxLayoutからQLabelを追加することで、あなたがQScrollAreaを追加しなければならないということです。あなたは変更する必要があります。

l.addWidget(label) 

l.addWidget(scrollArea) 

enter image description here

関連する問題