QLabel自動換行(支援中英文)
阿新 • • 發佈:2019-01-08
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