QLabel支持提供了API,只有中文换行,因为中文里面含有空格换行符号,如下
LabelName->setWordWrap(true);
LabelName->setAlignment(Qt::AlignTop);
如果你输入了英文里面提供了换行符号或者空格,英文也可以支持换行
QString str = "fdsfa";
str= str+"\n" +"fdddddddddddddd23";
ui->label->setText(str);
显示的结果是这样:
fdsfa
fdddddddddddddd23
如果我们换位思考一下,label显示的内容QString,在此之前,我们只要对字符串进行处理就行了,下面我尝试一种方法然大家参考
void setText(const QString &)
QString event::AutoFeed(QString text)
{
QString strText = text;
int AntoIndex = 1;
if(!strText.isEmpty())
{
for(int i = 1;i<strText.size() + 1;i++)//25个字符换一行
{
if(i == 25*AntoIndex + AntoIndex -1)
{
strText.insert(i,"\n");
AntoIndex ++;
}
}
}
return strText;
}
int main()
{
ui->label->setText(AutoFeed(text));
}
在写的过程中,我们不要返回Qstring& 因为局部变量生命周期结束后,你还占用着地址,非法占用,会造成程序crash