PYQT5 QscrollArea(滚动条)的使用

该代码示例演示了如何在PyQt5中创建一个包含多个按钮的窗口,并通过设置一个QScrollArea来实现垂直滚动功能。每个按钮的位置根据文件名动态生成,窗口还包含一个底部信息栏。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import sys
from PyQt5.QtWidgets import *
 
 
class MainWindow(QMainWindow):
    def __init__(self,):
        super(QMainWindow,self).__init__()
        self.number = 0
 
        w = QWidget()
        self.setCentralWidget(w)
 
        self.topFiller = QWidget()
        self.topFiller.setMinimumSize(250, 2000)#######设置滚动条的尺寸
        for filename in range(20):
            self.MapButton = QPushButton(self.topFiller)
            self.MapButton.setText(str(filename))
            self.MapButton.move(10,filename*40)
        ##创建一个滚动条
        self.scroll = QScrollArea()
        self.scroll.setWidget(self.topFiller)
 
 
        self.vbox = QVBoxLayout()
        self.vbox.addWidget(self.scroll)
        w.setLayout(self.vbox)
 
        self.statusBar().showMessage("底部信息栏")
        self.resize(300, 500)
 
if __name__ == "__main__":
    app = QApplication(sys.argv)
    mainwindow = MainWindow()
    mainwindow.show()
    sys.exit(app.exec_())

出来的效果

 

PyQt6中,QScrollArea是一个能够提供滚动功能的容器小部件,它允许用户在子部件大小超出其可视区域时滚动查看。如果你希望在初始化QScrollArea时,滚动条默认滚动到底部,你可以通过编程的方式设置垂直滚动条的当前位置。 以下是如何设置QScrollArea的垂直滚动条默认位置到底部的方法: 1. 使用`setVerticalScrollBarPolicy`方法设置滚动条策略。通常我们希望滚动条一直显示,因此可以设置为`Qt.ScrollBarAlwaysOn`。 2. 使用`verticalScrollBar().setValue`方法设置垂直滚动条的值。这个值应该设置为滚动区域的可视高度减去内容区域的总高度,这样滚动条就会出现在底部。 示例代码如下: ```python from PyQt6.QtWidgets import QApplication, QWidget, QScrollArea, QVBoxLayout, QPushButton, QHBoxLayout, QLabel from PyQt6.QtCore import Qt class Window(QWidget): def __init__(self): super().__init__() self.setWindowTitle("PyQt6 QScrollArea 示例") self.setGeometry(300, 300, 400, 400) # 创建滚动区域 scroll_area = QScrollArea() scroll_area.setWidgetResizable(True) # 设置部件大小可调整 scroll_area.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn) # 设置滚动条策略 # 创建一个内部部件来放置内容 scroll_widget = QWidget() scroll_layout = QVBoxLayout(scroll_widget) # 添加一些内容 for i in range(20): label = QLabel(f"内容 {i}") scroll_layout.addWidget(label) # 将内部部件添加到滚动区域 scroll_area.setWidget(scroll_widget) # 设置滚动条到底部 scroll_area.verticalScrollBar().setValue(scroll_area.verticalScrollBar().maximum()) # 创建布局并添加滚动区域 main_layout = QHBoxLayout(self) main_layout.addWidget(scroll_area) if __name__ == '__main__': app = QApplication([]) window = Window() window.show() app.exec() ``` 在这段代码中,我们创建了一个带有多个`QLabel`的窗口,并将这些标签放置在一个`QScrollArea`中。在设置完滚动区域的内容后,我们通过`setValue`方法将垂直滚动条设置为最大值,从而使滚动条滚动到底部。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值