我想给一个小部件一个初始大小>>>>>>不固定,不是最小,也不是最大尺寸
因为我希望用户能够在使用拆分器时控制小部件的大小。
如何?
看这张图片:
当我打开程序时,我希望右侧(红色)宽度为 150 >,但是当我尝试更改它的大小时,我希望它能够响应并且可以更改,即使我希望它更大或更小。
当我设置固定大小时,我将无法更改其大小。
当我设置最小尺寸时,它会扩展并使左侧(绿色)变小。
当我设置最大尺寸时,我将能够使其更小,但不能更大。
这是我的代码:
from PyQt5 import QtWidgets
import sys
app = QtWidgets.QApplication(sys.argv)
window = QtWidgets.QWidget()
window.resize(800,500)
window_layout = QtWidgets.QGridLayout()
first_widget = QtWidgets.QScrollArea()
first_widget.setStyleSheet("background-color:rgb(0,150,0)")
second_widget = QtWidgets.QGroupBox()
second_widget.setStyleSheet("background-color:rgb(150,0,0)")
splitter = QtWidgets.QSplitter()
splitter.addWidget(first_widget)
splitter.addWidget(second_widget)
window_layout.addWidget(splitter)
window.setLayout(window_layout)
window.show()
app.exec()
谢谢。
由于您使用的是 QSplitter,因此您可以简单地使用 setSizes 方法来调整分割器控制的每个窗口的大小。
例如:
splitter.setSizes([650,150])
来自 Qt 文档
QSplitter.setSizes
将子窗口小部件各自的大小设置为列表中给出的值。
如果拆分器是水平的,则这些值从左到右设置每个小部件的宽度(以像素为单位)。如果分割器是垂直的,则从上到下设置每个小部件的高度。
列表中的额外值将被忽略。如果列表包含的值太少,结果是不确定的,但程序仍然会表现良好。
拆分器小部件的整体大小不受影响。相反,任何额外/缺失的空间都会根据尺寸的相对权重分布在小部件之间。
如果指定大小为 0,则小部件将不可见。保留小部件的大小策略。也就是说,小于相应小部件的最小尺寸提示的值将被提示的值替换。