gpt4 book ai didi

python - 如何在 Pyqt 中创建可调整大小的布局 UI?

转载 作者:行者123 更新时间:2023-12-04 16:28:05 24 4
gpt4 key购买 nike

我尝试创建一个 gui。窗口应该可以调整大小。当水平调整大小时,其中一些小部件也应该垂直扩展。我对此进行了说明以使其更清楚:

初始

水平调整大小

垂直调整大小

在 Qt 中我使用 QHBoxLayout 但不幸的是没有成功。

谢谢。

最佳答案

例如:

您需要在 QSplitter 上使用 setStretchFactor 方法

一个例子(修改自 QSplitter 例子 Here ):

import sys
from PyQt4 import QtGui, QtCore

class Example(QtGui.QWidget):
def __init__(self):
super(Example, self).__init__()
self.initUI()

def initUI(self):
hbox = QtGui.QHBoxLayout(self)
left = QtGui.QFrame(self)
left.setFrameShape(QtGui.QFrame.StyledPanel)
right = QtGui.QFrame(self)
right.setFrameShape(QtGui.QFrame.StyledPanel)
splitter = QtGui.QSplitter(QtCore.Qt.Horizontal)
splitter.addWidget(left)
splitter.addWidget(right)
splitter.setStretchFactor(1, 1)
splitter.setSizes([125, 150])
hbox.addWidget(splitter)
self.setLayout(hbox)
QtGui.QApplication.setStyle(QtGui.QStyleFactory.create('Cleanlooks'))
self.setGeometry(300, 300, 300, 200)
self.setWindowTitle('QtGui.QSplitter')
self.show()

def main():
app = QtGui.QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())

if __name__ == '__main__':
main()

这会生成一个如下所示的初始 UI:

Initial UI

当图像水平展开时,您可以看到左侧小部件保持相同大小:

Expanded horizontally

垂直展开时,两个小部件都会展开:

enter image description here

最后,拆分器是可调整大小的:

Resizeable

如果您在调整拆分器后调整窗口大小,则左侧小部件将保持其大小,右侧小部件将展开/折叠以填充窗口的其余部分。

关于python - 如何在 Pyqt 中创建可调整大小的布局 UI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58822249/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com