python - PyQt:如何创建一个可滚动的窗口

标签 python pyqt scrollbar qscrollarea

我认为在 PyQt 中创建一个可滚动的窗口应该容易得多。 我有一个超出窗口的标签列表,我想向下滚动以查看它们。目前代码没有给我错误,但是窗口没有出现:

class Example(QWidget):

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

        layout = QVBoxLayout()

        lbl_arr = makeLabelArr()

        for i in range(1,8):
            qb = lbl_arr[i]
            # qb.setFixedWidth(300)
            layout.addWidget(qb)

        layout.setAlignment(Qt.AlignTop)

        scroll = QScrollArea()
        scroll.setWidget(self)
        scroll.setWidgetResizable(True)
        scroll.setFixedHeight(400)

        layout.addWidget(scroll)

        self.setLayout(layout)


        self.setGeometry(0, 0, 600, 220)
        self.setWindowTitle('SnP watchlist')

        self.show()


if __name__ == '__main__':

    app = QApplication(sys.argv)
    #print(QDesktopWidget().availableGeometry())

    ex = Example()
    sys.exit(app.exec_())

最佳答案

让窗口本身成为一个QScrollArea,像这样:

class Window(QScrollArea):
    def __init__(self):
        super(Window, self).__init__()
        widget = QWidget()
        layout = QVBoxLayout(widget)
        layout.setAlignment(Qt.AlignTop)
        for index in range(100):
            layout.addWidget(QLabel('Label %02d' % index))
        self.setWidget(widget)
        self.setWidgetResizable(True)

关于python - PyQt:如何创建一个可滚动的窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46024724/

相关文章:

python - 如何将嵌套的整数列表拆分为列表

pandas - 将文件中的项目动态添加到 ComboBox

python - 具有任意类型参数的 PyQt 信号/新型信号的 PyQt_PyObject 等价物

java - 在 Java 中向 JPanel 添加滚动条

javascript - 如何让元素放置在负数位置时页面向左滚动?

Python将包含列表的字典对象转换为包含字典的列表

python - Telegram bot api 键盘

python - 使用 Python 检索街道地址的美国邮政编码

python - 如何使用 QDataStream 在 Python 中打开一个 bin 文件

css - 在 Firefox 中隐藏滚动条