繁体   English   中英

PyQt5 将 QScrollArea 添加到 Frame 或 Widget

[英]PyQt5 add QScrollArea to a Frame or a Widget

我想隐藏一个显示 PDF 文件页面的 QScrollArea。 我知道如何隐藏小部件和框架,因此我想将 QScrollArea 添加到其中任何一个,以便隐藏它。 我尝试了 setStyleSheet ('height:0px;'),它不起作用。

这是取自https://www.learnpyqt.com/tutorials/qscrollarea/#adding%20a%20qscrollarea%20from%20code的示例代码。 具体到此代码如何将 self.scroll 添加到框架或小部件?

import sys
from PyQt5 import QtCore, QtGui, QtWidgets, uic, QtMultimediaWidgets, QtWebEngineWidgets
from PyQt5.QtWidgets import QApplication, QMainWindow
from PyQt5.Qt import *

class MainWindow(QMainWindow):

    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.scroll = QScrollArea()             # Scroll Area which contains the widgets, set as the centralWidget
        self.widget = QWidget()                 # Widget that contains the collection of Vertical Box
        self.vbox = QVBoxLayout()               # The Vertical Box that contains the Horizontal Boxes of  labels and buttons

        self.pageLabel0 = QLabel()
        self.pageLabel0.setAlignment(Qt.AlignCenter)
        self.pageLabel0PageImage = QPixmap('pdfs/page_0.png').scaledToWidth(self.width(), Qt.SmoothTransformation)
        self.pageLabel0.setPixmap(self.pageLabel0PageImage)
        self.vbox.addWidget(self.pageLabel0)

        self.pageLabel1 = QLabel()
        self.pageLabel1.setAlignment(Qt.AlignCenter)
        self.pageLabel1PageImage = QPixmap('pdfs/page_1.png').scaledToWidth(self.width(), Qt.SmoothTransformation)
        self.pageLabel1.setPixmap(self.pageLabel1PageImage)
        self.vbox.addWidget(self.pageLabel1)

        self.widget.setLayout(self.vbox)

        #Scroll Area Properties
        self.scroll.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn)
        self.scroll.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
        self.scroll.setWidgetResizable(True)
        self.scroll.setWidget(self.widget)

        self.setCentralWidget(self.scroll)

        self.setGeometry(600, 100, 1000, 900)
        self.setWindowTitle('Scroll Area Demonstration')
        self.show()

        return

def main():
    app = QtWidgets.QApplication(sys.argv)
    main = MainWindow()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()

只需将self.scroll.hide()添加到您的代码中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM