c++ - C++ qtextedit调整大小以适应

  显示原文与译文双语对照的内容
114 4

我有一个 QTextEdit插件,它充当( 可以编辑至 false ) 。它显示的文本是 wordwrapped 。现在我想设置这个文本框的高度,以便文本正好符合( 同时也尊重最大高度) 。

基本上布局下面的小部件( 在同一垂直布局中) 应该尽可能地获得尽可能多的空间。

如何才能实现最容易的实现?

时间:原作者:0个回答

107 3

我发现了一个非常稳定的使用 QFontMetrics的解决方案 !

from PyQt4 import QtGui
text = ("The answer is QFontMetricsn."
"n"
"The layout system messes with the width that QTextEdit thinks itn"
"needs to be. Instead, let's ignore the GUI entirely by usingn"
"QFontMetrics. This can tell us the size of our textn"
"given a certain font, regardless of the GUI it which that text will be displayed.")
app = QtGui.QApplication([])
textEdit = QtGui.QPlainTextEdit()
textEdit.setPlainText(text)
textEdit.setLineWrapMode(True) # not necessary, but proves the example
font = textEdit.document().defaultFont() # or another font if you change it
fontMetrics = QtGui.QFontMetrics(font) # a QFontMetrics based on our font
textSize = fontMetrics.size(0, text)
textWidth = textSize.width() + 30 # constant may need to be tweaked
textHeight = textSize.height() + 30 # constant may need to be tweaked
textEdit.setMinimumSize(textWidth, textHeight) # good if you want to insert this into a layout
textEdit.resize(textWidth, textHeight) # good if you want this to be standalone
textEdit.show()
app.exec_()

( 感谢我,我知道你的问题是关于 C++,我在使用 python,但在 Qt 中它们是相同的。) 。

原作者:
64 4

除非有特定的QTextEdit 功能,否则打开单词包装的QLabel 就会完全正确。

原作者:
...