2024年6月11日发(作者:)

这两天在做Qt开发中,用到了这样一个功能,需要动态的显示文本内容。经过网上

资料查询,可以使用QLabel控件进行显示。想要实现文本的自动换行显示,其中有一点

是不变的,文本的最大高度或者最大宽度。这两个条件有一个肯定会确定,否则无法知道

到到什么临界值进行换行。

下面,我们对QLabel控件的自动换行功能,进行说明,分为了高度确定以及宽度确

定两种情况。

在我们开发过程中,一般用到的是最大宽度值确定。经过资料查询,可以使用

setWordWrap函数进行自动换行。但是我根据网上的做法设置之后发现了一个问题,纯

英文的文本无法进行换行!中文才可以。几经波折,发现是API的使用顺序有错误。

下面我就以限制宽度的情况进行说明,限制高度的情况一致。

假设:当前展示的文本的最大宽度值是800。

第一步:在设置文本内容之前,强制的告诉控件需要显示宽度=800。

t->setFixedWidth(800);

第二步:设置需要显示的文本内容

t->setText("显示的文本内容");

第三步:设置自动换行功能

t->setWordWrap(true);

第四步:自适应设置的控件宽度

t->adjustSize();

第五步:获取自动换行之后的高度

int nNewHeight = t->height();

第六步:重新设置控件的显示区域

t->setGeometry(1100, 10, 800, nNewHeight );

以上是设置控件自动换行的方法,当我们在使用过程中一定要按照这个顺序执行,否

则纯英文情况下不支持换行的。

有人会说,我想要设置控件的文本对齐方式以及风格显示该写到哪里呢?

大家可以记住一句话,任何对控件进行的样式风格的设置,一定要放到setText之前

操作。

这个功能很简单,操作起来也是用了很长时间才摸索出的规律,希望对大家有用。

好了,今天的更新就到这里了,点个赞再走吧~