• 12023阅读
  • 3回复

请教下如何让QLabel的文本自动换行? SetWordWrap 只能对固定分隔符有效 [复制链接]

上一主题 下一主题
 
只看楼主 正序阅读 楼主  发表于: 2010-12-30
假如文本没有空格,或者其他分隔符的话.

SetWordWrap 这个方法是没有用的,不会换行.

所以就不知道该怎么让QLabel根据控件长度来换行.

我查到 SetAlignment (Qt::TextWrapAnywhere); 这个是可以的
有人试过成功.

但是我一用,说函数匹配错误.

查了下文档才发现 SetAlignment  函数只有一种.参数是 Qt::Alignment 枚举
Qt::TextWrapAnywhere 是 Qt::TextFlags 枚举里的

所以当然不匹配,编译报错.

那个成功的人用的是 vs下的
而我是用的 Qt Creator win系统的


离线shiziyang

只看该作者 3楼 发表于: 2011-07-06
按LZ的需要只能派生一个label类在setText时用QFontMetrics获得宽高然后自己实现换行了。
只看该作者 2楼 发表于: 2010-12-31
我的label 是有布局的,但是依然不行.
多余的部分不会显示了.

除非有分隔符,比如空格.
这样用 setWordWrap(true) 可以自动换行.

但是对没有分隔符的,就没辙了
离线roywillow

只看该作者 1楼 发表于: 2010-12-30
你是说让Label固定宽度然后文本太长就自动换行?
你把Label放到一个Layout里面应该就可以实现了
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
快速回复
限100 字节
 
上一个 下一个