gpt4 book ai didi

python - 像 QTextEdit 这样的 QWidget 会自动将其高度包装到其内容中?

转载 作者:太空狗 更新时间:2023-10-29 21:32:17 24 4
gpt4 key购买 nike

我正在创建一个带有一些 QTextEdit 小部件的表单。

QTextEdit 的默认高度超过单行文本,当内容的高度超过 QTextEdit 的高度时,它会创建一个滚动条来滚动内容。

我想覆盖此行为以创建一个 QTextEdit,它宁愿将其高度包装到其内容中。这意味着默认高度将是一行,并且在换行或输入新行时,QTextEdit 将自动增加其高度。每当内容高度超过 QTextEdit 的高度时,后者不应创建滚动条,而应简单地增加高度。

我该怎么做呢?谢谢。

最佳答案

这几乎完全像我前几天回答的关于让 QTextEdit 调整其高度以响应内容变化的问题:PySide Qt: Auto vertical growth for TextEdit Widget

我正在回答而不是标记重复项,因为我怀疑您可能想要对此进行修改。如果您想让我扩展这个答案,请告诉我:

另一个问题有多个部分。这是不断增长的高度小部件的摘录:

class Window(QtGui.QDialog):

def __init__(self):
super(Window, self).__init__()
self.resize(600,400)

self.mainLayout = QtGui.QVBoxLayout(self)
self.mainLayout.setMargin(10)

self.scroll = QtGui.QScrollArea()
self.scroll.setWidgetResizable(True)
self.scroll.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)
self.mainLayout.addWidget(self.scroll)

scrollContents = QtGui.QWidget()
self.scroll.setWidget(scrollContents)

self.textLayout = QtGui.QVBoxLayout(scrollContents)
self.textLayout.setMargin(10)

for _ in xrange(5):
text = GrowingTextEdit()
text.setMinimumHeight(50)
self.textLayout.addWidget(text)


class GrowingTextEdit(QtGui.QTextEdit):

def __init__(self, *args, **kwargs):
super(GrowingTextEdit, self).__init__(*args, **kwargs)
self.document().contentsChanged.connect(self.sizeChange)

self.heightMin = 0
self.heightMax = 65000

def sizeChange(self):
docHeight = self.document().size().height()
if self.heightMin <= docHeight <= self.heightMax:
self.setMinimumHeight(docHeight)

关于python - 像 QTextEdit 这样的 QWidget 会自动将其高度包装到其内容中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11851020/

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