PyQt5:QScrollArea不附加到标签

时间:2017-04-15 19:49:01

标签: python pyqt pyqt5

我正在尝试在Box布局中显示带有滚动条的图像标签。 但是,滚动区域出现在错误的位置,大小错误。 你能告诉我我做错了吗?

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

1 个答案:

答案 0 :(得分:0)

问题是,您必须添加QLabel,而不是将QVBoxLayout添加到QScrollArea。你必须改变:

l.addWidget(label)

l.addWidget(scrollArea)

enter image description here