【问题标题】:PyQt QScrollArea no scrollareaPyQt QScrollArea 没有滚动区域
【发布时间】:2018-01-12 21:39:37
【问题描述】:

我有

class View(QtWidgets.QLabel):
    def __init__(self):
        super(View,self).__init__()

        self.cropLabel = QtWidgets.QLabel(self)
        self.label = QtWidgets.QLabel(self)

        self.ogpixmap = QtGui.QPixmap()
        fileName = r'C:/Users/user11.HPO-SAMAT/Pictures/Lake.jpg'
        image = QtGui.QImage(fileName)
        self.pixmap = QtGui.QPixmap.fromImage(image)
        self.label.setPixmap(self.pixmap)
        self.label.adjustSize()

然后我调用这个类:

class Viewer(QtWidgets.QMainWindow):
    def __init__(self):
        super().__init__()

        self.view = View()
        self.scroller = QtWidgets.QScrollArea()
        self.scroller.setWidget(self.view)
        self.scroller.setWidgetResizable(True)
        self.scroller.adjustSize()

但是 QScrollArea 似乎不起作用(noscrollbar 虽然图像是可见的,我可以展开 QMainWindows 以完全看到它) 我做错了什么?

【问题讨论】:

    标签: python pyqt pyqt5 qscrollarea


    【解决方案1】:

    我不明白,所以他们在 View 中放置了几个标签,如果我们删除其他标签,我们就会得到你想要的。

    class View(QtWidgets.QLabel):
        def __init__(self, parent=None):
            super(View,self).__init__(parent)
            fileName = "/home/qhipa/Pictures/1475777628875.jpg"
            self.pixmap = QtGui.QPixmap(fileName)
            self.setPixmap(self.pixmap)
    
    
    class Viewer(QtWidgets.QMainWindow):
        def __init__(self):
            super().__init__()
            self.view = View(self)
            self.scroller = QtWidgets.QScrollArea(self)
            self.setCentralWidget(self.scroller)
            self.scroller.setWidget(self.view)
            self.scroller.setWidgetResizable(True)
            self.scroller.adjustSize()
    

    如果你想获取多个标签,最好是从 QWidget 继承 View 类。

    class View(QtWidgets.QWidget):
        def __init__(self, parent=None):
            super(View,self).__init__(parent)
            self.setLayout(QtWidgets.QVBoxLayout())
    
            self.cropLabel = QtWidgets.QLabel(self)
            self.label = QtWidgets.QLabel(self)
    
            self.layout().addWidget(self.cropLabel)
            self.layout().addWidget(self.label)
            self.pixmap = QtGui.QPixmap("/home/qhipa/Pictures/1475777628875.jpg")
            self.label.setPixmap(self.pixmap)
            self.label.adjustSize()
    

    【讨论】:

    • 嗨,是的,你是对的,非常感谢。我误解了 View 应该从哪个类继承以及实现其内容的方式
    猜你喜欢
    • 2011-10-11
    • 1970-01-01
    • 1970-01-01
    • 2017-05-27
    • 2011-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-25
    相关资源
    最近更新 更多