gpt4 book ai didi

qt - 如何使 QLineEdit 在 QScrollArea 内展开

转载 作者:行者123 更新时间:2023-12-04 07:13:49 24 4
gpt4 key购买 nike

我在 QWidget 中有一个 QLabel 和一个 QLineEdit。当我在 QScrollArea 中有小部件时,行编辑不会扩展以占据窗口的多余宽度。当小部件不在滚动区域内时,它会展开。

我已经尝试将行编辑和小部件的大小策略设置为水平扩展,但它不会占用多余的空间。我怀疑在滚动区域内时小部件的 sizeHint() 被压缩。任何想法如何使这项工作?

class MainWindow(QtGui.QMainWindow):
def __init__(self):
QtGui.QMainWindow.__init__(self, None)
self.setWindowTitle('Test Window')
self.resize(500, 250)

scrollArea = QtGui.QScrollArea()
scrollWidget = QtGui.QWidget()
scrollWidget.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Maximum)

layout = QtGui.QGridLayout(scrollWidget)
label = QtGui.QLabel("Name:")
layout.addWidget(label, 0, 0)
lineEdit = QtGui.QLineEdit("Value")
lineEdit.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Maximum)
layout.addWidget(lineEdit, 0, 1)
scrollWidget.setLayout(layout)

scrollArea.setWidget(scrollWidget)
self.setCentralWidget(scrollArea)

最佳答案

我相信我已经解决了你的问题。

在您的代码中添加以下内容,它的行为应该正确:

    ...

scrollArea.setWidget(scrollWidget)
scrollArea.setWidgetResizable(True) #add this
self.setCentralWidget(scrollArea)

...

来自 docs ,

widgetResizable : bool

This property holds whether the scroll area should resize the view widget.

If this property is set to true, the scroll area will automatically resize the widget in order to avoid scroll bars where they can be avoided, or to take advantage of extra space.

关于qt - 如何使 QLineEdit 在 QScrollArea 内展开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2308923/

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