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之前
操作。
这个功能很简单,操作起来也是用了很长时间才摸索出的规律,希望对大家有用。
好了,今天的更新就到这里了,点个赞再走吧~
发布评论