• 35906阅读
  • 13回复

QLabel如何自动换行? [复制链接]

上一主题 下一主题
离线berryz2007
 

只看楼主 倒序阅读 楼主  发表于: 2008-01-25
— 本帖被 XChinux 执行加亮操作(2008-07-17) —
QLabel如何自动换行?

在文字很长的时候,而且是中英混合字符串,如何处理呢?
离线landuochong

只看该作者 1楼 发表于: 2008-01-25
textLabel->setAlignment( int( QLabel::AlignVCenter| QLabel::BreakAnywhere) );
离线ypshadow

只看该作者 2楼 发表于: 2010-03-16
textLabel->setWorkSwap(true) ;
离线yangfanxing
只看该作者 3楼 发表于: 2010-03-16
mark!很好很强大~
PHPWind好恶心。。。不想看这种界面。。。
离线kingnight
只看该作者 4楼 发表于: 2010-03-17
引用第2楼ypshadow于2010-03-16 17:14发表的  :
textLabel->setWorkSwap(true) ;



你是要写 setWordWrap(true)吧
离线hover_sky

只看该作者 5楼 发表于: 2010-03-17
不行哦
离线luoyes

只看该作者 6楼 发表于: 2010-03-17
setWordWrap( true );
可以啊
离线hover_sky

只看该作者 7楼 发表于: 2010-03-17
是我的代码有问题么?

  1.     this->ui->label->setText("dddddddddddddddddddddddddddff");
  2.     //this->ui->label->setMinimumSize(20,20);
  3.     this->ui->label->setWordWrap(true);

离线kingnight
只看该作者 8楼 发表于: 2010-03-17
label的宽度太小吧,只是一行内容的宽度
离线hover_sky

只看该作者 9楼 发表于: 2010-03-17
引用第8楼kingnight于2010-03-17 14:36发表的  :
label的宽度太小吧,只是一行内容的宽度


我加上这个效果是一样的
  1. this->ui->label->setMinimumSize(20,20);
离线hover_sky

只看该作者 10楼 发表于: 2010-03-17
只有把size设大才可以一行把全部文章显示出来,根本就不会换行。


期待贴代码贴图出来看看
离线iiiyyyhhhsss

只看该作者 11楼 发表于: 2010-03-17
我用了

label.setWordWrap(true);
label.setText("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");

后,也是没有看见label能像textEdit那样自动换行...
离线sbtree
只看该作者 12楼 发表于: 2010-03-17
使用setWordWrap(true)想达到自动换行的目的要满足以下条件:
1 文字之间必须有分隔符,例如空格,这个函数本身的目的是要保持在行末最后一个单词的完整性或者音节上的完整性
2 label的高度要进行相应的调整,因为label本身不会因为文字行数增加而自动调整高度
windows 7 + VC++2008 + Qt4.5.2
离线84211698

只看该作者 13楼 发表于: 2011-12-15
QLabel自动换行是可以解决的,我在UBUNTU下试过
中文,没有任何分隔符,以下是代码部分


1. 让QLabel自适应text的大小,直接用下面的代码:
LabelName->adjustSize();
2. 让QLabel能够自动判断并换行显示:
LabelName->setGeometry(QRect(328, 240, 329, 27*4));  //四倍行距

LabelName->setWordWrap(true);
LabelName->setAlignment(Qt::AlignTop);

这里面的技巧是,要给QLABEL足够的空间

本篇转载自
http://hi.baidu.com/raoxj/blog/item/7ac873cf5fa92f27f9dc611a.html

快速回复
限100 字节
 
上一个 下一个