因工作需求,需要使用QLabel显示文本数据,当做完后发现每一行的文本行间距貌似是固定的,并且Qt没有暴露api去设置,所以我们需要手动的加'\n',但是\n只是换行,又不能自定义行间距,经查阅网上资料,发现可以用css完成,代码如下:
/* 以下代码必须要按顺序,否则自动换行/自适应大小可能失败 */
ui->label->setWordWrap(true);//label自动换行
QString msg = "111啊啊啊啊啊啊啊啊啊啊啊啊啊1111啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊 啊啊111";
//25px是行间距,意思是每一行间距25个像素,其他的直接复制吧,我对前端语言也不了解
QString qsShow = "<p style='line-height:25px; width:100% ; white-space: pre-wrap; '>" + msg + "</p>";
ui->label->setText(qsShow);
ui->label->adjustSize();//label根据内容自适应大小