从PyQt的MainWindow中删除水平滚动条?

时间:2019-03-18 14:36:02

标签: python linux pyqt pyqt5

我正在寻求有关在PyQT中向MainWindow添加滚动条的指导。看了几个例子之后,我能够使以下代码正常工作(环境是Python 3 + PyQt5 )。这是一个在QMainWindow上创建滚动条的小示例。调整大小时,它还会创建一个水平滚动条。

  1. 如何防止创建水平滚动条?

  2. 总的来说,这是添加滚动条的正确方法吗?

    import sys
    from PyQt5.QtWidgets import *
    from PyQt5.QtGui     import *
    from PyQt5.QtCore    import *
    
    class App(QMainWindow):
    
    def __init__(self):
        super().__init__()
        self.title  = 'Test'
        self.left   = 10
        self.top    = 10
        self.width  = 640
        self.height = 480
        self.initUI()
    
    def initUI(self):
        self.setWindowTitle(self.title)
        self.setGeometry(self.left, self.top, self.width, self.height)
    
        # Create the Scroll Area
        self.scrollArea = QScrollArea()
        self.setCentralWidget(self.scrollArea)
    
        self.scrollArea.setWidgetResizable(True)
        self.scrollAreaWidgetContents = QWidget(self.scrollArea)
        self.scrollAreaWidgetContents.setGeometry(QRect(0, 0, self.width, self.height))   
        self.scrollArea.setWidget(self.scrollAreaWidgetContents)
        self.scrollAreaWidgetContents.setMinimumSize(QSize(400, 500))
    
        # Create the Layout
        self.scrollLayout = QVBoxLayout(self.scrollAreaWidgetContents)
    
        self.layout = QVBoxLayout()
    
        # Create the Labels
        label1 = QLabel('Label 1', self)
        label1.move(50, 50)
    
        label2 = QLabel('Label 2', self)
        label2.move(50, 100)
    
        label3 = QLabel('Label 3', self)
        label3.move(50, 150)
    
        label4 = QLabel('Label 4', self)
        label4.move(50, 200)
    
        self.layout.addWidget(label1)
        self.layout.addWidget(label2)
        self.layout.addWidget(label3)
        self.layout.addWidget(label4)
    
        # Add the Layout
        self.scrollLayout.addLayout(self.layout)
        self.show()
    
    if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = App()
    
    
    sys.exit(app.exec_())
    

0 个答案:

没有答案