PyQt的QScrollArea没有scrollarea

PyQt的QScrollArea没有scrollarea

问题描述:

PyQt的QScrollArea没有scrollarea

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到看完全) 我在做什么错了?

我不明白,所以他们把几个标签视图,如果我们删除其他标签,我们得到你想要的。

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

enter image description here

相反,如果你想获得多个标签,倒不如说View类从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() 
+0

嗨,你是对的,非常感谢。我误解了View应该从哪个类继承,以及实现其内容的方式 –