• 10280阅读
  • 8回复

如何让Qlebal根据显示内容长度自动适应宽度? [复制链接]

上一主题 下一主题
离线tsuibin
 

只看楼主 倒序阅读 楼主  发表于: 2009-11-06
例如一个lebal 现在的宽度是 100 , setText("您好,欢迎您!"),这样显示没有问题
但是如果内容多了一些setText("您好 tsuibin,欢迎您登录 SVR10 ,您可以在这里分享您的文档、照片和视频。")

有没有办法让Qlabel自动根据内容长短来调整宽度?

这儿 如果用 setGeometry(100,100, 宽度=(字符串长度)*(字符串宽度)+边距 ,80);

那么如果我更改了字体大小,就显示不完整了,有没有更好的办法呢?
离线hiti_tony
只看该作者 1楼 发表于: 2009-11-06
我还没发现,觉得QLabel不会自带有这样的功能,可以考虑自己实现,算出这些字的长度然后设置label的宽度。
离线tsuibin

只看该作者 2楼 发表于: 2009-11-06
你好,hiti_tony ,请问我这么写

QFontMetrics *fontMetrics;
QString text;
fontMetrics = new QFontMetrics( QFont( "Arial" , paraMap.value("fontsize").toInt() ) );

高度 fontMetrics->height()

宽度用 fontMetrics->width(text) ;

这样可以吗?
离线rqzrqh

只看该作者 3楼 发表于: 2009-11-06
实现这样的功能多不好,容易丧失布局
QLabel大小固定用wordwrap实现换行,文字多了就增加一个scroll
离线tsuibin

只看该作者 4楼 发表于: 2009-11-06
你好rqzrqh,谢谢你的答复
我这个应用优点特殊,所以不能换行。
我打算让这个QLabel横向移动来播放文字。
离线hiti_tony
只看该作者 5楼 发表于: 2009-11-06
回 2楼(tsuibin) 的帖子
可以的。
不知道你所说的横向移动播放文字是什么效果?如果label宽度把窗口都撑满了你又怎么办?个人感觉动态改变label的大小不太合适。
离线rqzrqh

只看该作者 6楼 发表于: 2009-11-06
引用第4楼tsuibin于2009-11-06 12:47发表的  :
你好rqzrqh,谢谢你的答复
我这个应用优点特殊,所以不能换行。
我打算让这个QLabel横向移动来播放文字。

那就滚动文字吧
离线hiti_tony
只看该作者 7楼 发表于: 2009-11-06
恩 同意楼上
离线toby520

只看该作者 8楼 发表于: 2013-04-27
QLabel设置固定宽度,在settext时候能否将多余的文字以省略号的形式呈现?比如:你好,我在上海,但是超过了此长度,显示为:你好,我在上海...
QtQML多多指教开发社区 http://qtclub.heilqt.com
将QtCoding进行到底
关注移动互联网,关注金融
开发跨平台客户端,服务于金融行业
专业定制界面
群号:312125701   373955953(qml控件定做)
快速回复
限100 字节
 
上一个 下一个