PyQt QScrollArea 无滚动区域 [英] PyQt QScrollArea no scrollarea

查看:54
本文介绍了PyQt QScrollArea 无滚动区域的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有

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 似乎不起作用(尽管图像可见,但我可以展开 QMainWindows 以完全查看它的 noscrollbar)我做错了什么?

But QScrollArea does not seem to work (noscrollbar though the image is visible and I can expand QMainWindows to see it entirely) What am I doing wrong ?

推荐答案

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

I do not understand so they put several labels inside View, if we remove the labels that are other we get what you want.

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 类.

Instead if you want to get several labels, it is better that the View class inherits from QWidget.

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()

这篇关于PyQt QScrollArea 无滚动区域的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆