Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ QPlainTextEdit-绝对大小_C++_Qt_Qplaintextedit - Fatal编程技术网

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的副本。我会检查它。到目前为止,我的公式也适用。