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

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

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

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

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

时间: 原作者:

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 就会完全正确。

原作者:
...