【发布时间】:2021-11-23 10:30:35
【问题描述】:
我有一个 QScrollArea,里面有一个 QGridLayout。这说 QGridLayout 充满了 100x100 网格上的按钮。我希望垂直滚动条从底部而不是顶部开始。我已经在网上搜索了如何做到这一点,但到目前为止没有任何效果。
import sys
from PyQt5 import QtWidgets
class IndicSelectWindow(QtWidgets.QDialog):
def __init__(self, parent=None):
super(IndicSelectWindow, self).__init__(parent=parent)
self.resize(500, 400)
self.layout = QtWidgets.QHBoxLayout(self)
self.scrollArea = QtWidgets.QScrollArea(self)
self.scrollArea.setWidgetResizable(True)
self.scrollAreaWidgetContents = QtWidgets.QWidget()
self.gridLayout = QtWidgets.QGridLayout(self.scrollAreaWidgetContents)
self.scrollArea.setWidget(self.scrollAreaWidgetContents)
self.layout.addWidget(self.scrollArea)
for i in range(100):
for j in range(100):
self.gridLayout.addWidget(QtWidgets.QPushButton(), i, j)
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
w = IndicSelectWindow()
w.show()
sys.exit(app.exec_())
编辑:试图更好地解释 - 我需要滚动到底部,所以当我打开窗口时,滚动条位于底部而不是顶部。
我尝试过的:
x = self.scrollArea.verticalScrollBar().maximum()
self.scrollArea.verticalScrollBar().setValue(x)
和
x = self.scrollArea.verticalScrollBar().maximum()
self.scrollArea.verticalScrollBar().setSliderPosition(x)
【问题讨论】:
-
你的问题不清楚,请解释清楚
-
@eyllanesc 我已经编辑了它,试图更好地解释。我需要的是滚动到底部,而不是获取默认滚动条位置(顶部)
-
x中的self.scrollArea.verticalScrollBar().setValue(x)是什么? -
@eyllanesc 它是
self.scrollArea.verticalScrollBar().maximum()
标签: python pyqt5 qscrollarea