问题:QLabel太长导致显示不全,如何自动换行

问题背景及说明

项目需要在一个固定大小的label框内显示字符串,由于字符串过长,所以需要换行

本文使用Qt版本为Qt 4.8。

 

网络求解

文字过长,QLabel显示不全的问题,QLabel怎么自动分行显示

 

总结

方法一,通过QLabel::setWordWrap(true)实现自动换行:

关键点:

QLabel中的字符串自动换行的条件:当前行写满了,而且在满行附近出现空格。

如"abc 123",假设当前行放不下,"123"将显示在第二行;又如"abc123",是不会自动换行的。

分两步:

1、设置QLable属性(二选一):

①代码实现:

    ui->label->setGeometry(QRect(25, 2, 75, 35));     // 设置QLabel框大小
    ui->label->setWordWrap(true);                     // true:自动换行
    ui->label->setAlignment(Qt::AlignVCenter);        // 对齐方式

②或者在Qt Designer中设置:

2、(可选)在合适位置插入空格,实现换行:

    QString str = "changeline";
    str.insert(6, " ");                                // 在'e'后插入空格
    ui->label->setText(str);

注:如果字符串本身带有空格,则不需要步骤2。


方法二,手动插入'\n'实现手动换行:

    QString str = "changeline";
    str.insert(6, "\n");                                // 在'e'后插入换行符
    ui->label->setText(str);

 

  • 7
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值