C++ QPlainTextEdit-绝对大小
我需要获得C++ QPlainTextEdit-绝对大小,c++,qt,qplaintextedit,C++,Qt,Qplaintextedit,我需要获得QPlainTextEdit的绝对高度,就像它不在QAbstractScrollArea中一样。我已经花了大约一个小时来找出答案。我搜索了QPlainTextEdit,QTextDocument和QAbstractScrollArea,尝试了每个名称中包含大小的属性 我希望除了将blockCount()乘以blockBoundingRect(firstVisibleBlock()).height()并添加到内容偏移量之外,还有其他方法。(块大小相同。) 提前谢谢。我想这就是您想要的:
QPlainTextEdit
的绝对高度,就像它不在QAbstractScrollArea
中一样。我已经花了大约一个小时来找出答案。我搜索了QPlainTextEdit
,QTextDocument
和QAbstractScrollArea
,尝试了每个名称中包含大小的属性
我希望除了将blockCount()
乘以blockBoundingRect(firstVisibleBlock()).height()
并添加到内容偏移量之外,还有其他方法。(块大小相同。)
提前谢谢。我想这就是您想要的:
QScrollArea
有一个视口。视口是可视区域的大小。因此,如果您的qscrollara
名为foo
,您将需要执行以下操作:
foo.viewport().size();
它将返回您所需的
QSize
您可以在派生类中这样做:
int TextEditor::contentHeight() const
{
return contentOffset().y() + fontMetrics().lineSpacing() * blockCount();
}
我不想要可查看的,我想要绝对的-超出视口的边界。@LogicStuff应该在原始对象中维护。因此,如果您的
QPlainTextEdit
被命名为bar
,您应该能够执行以下操作:bar.size()代码>这是一样的(我想加上水平滚动条的高度)。@LogicStuff似乎我们有一个沟通错误,视口+滚动条=qscrollara.size()
bar.size()
不同于视口和QScrollArea.size()
。。。除非你的小部件的大小真的很幸运/不幸运。我认为OP是问如何获得“小部件需要多高才能显示所有内容而不垂直滚动”-而不是当前的小部件大小。似乎是@user2672165的副本。我会检查它。到目前为止,我的公式也适用。