QtQTextEdit固定宽度,⾼度随内容变化⽽变化,不会出现滚动条。
项⽬需求⾃定义控件:⼀个宽度固定,⾼度根据内容⾃适应的⽂本编辑框。
效果如下图所⽰:
之前尝试了⼀些其他⽅法,效果并不理想,⽐如:根据edit的滚动条的当前位置和最⼤值的差值,重新设置edit的⾼度,达到滚动条消失,⾼度⾃适应的效果。
最终解决⽅案:通过根据内容重新调整edit中document的⼤⼩,设置edit的⾼度,不需要进⾏数值计算了。
核⼼代码:滚动条变短是什么原因
//之前的Edit⾼度
int oldHeight = textEdit->height();
//调整⽂字⾼度并设置
QTextDocument *doc = textEdit->document();
//获得调整之后的Edit⾼度
int height = doc->size().height();
int width = doc->size().width();
//如果宽⾼⼩于最⼩宽⾼,设置为最⼩宽⾼
textEdit->setMinimumSize(175,26);
QSize minSize = textEdit->minimumSize();
if(height < minSize.height())
{
height = minSize.height();
}
if(width != minSize.width())
{
width = minSize.width();
}
doc->setTextWidth(width);
//重新设置Edit⾼度
textEdit->setFixedHeight(height);
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论