• 8923阅读
  • 4回复

在使用QPainter绘制字符串的时候怎么样做到超长的字符串用省略号结尾? [复制链接]

上一主题 下一主题
离线hxcan
 

只看楼主 倒序阅读 楼主  发表于: 2009-11-25
— 本帖被 XChinux 执行加亮操作(2010-09-21) —
例如:
“I love she , she loves me .”这个字符串,在画布中只能给它比较窄的宽度,只够显示出“I love she , she”,后面的直接被切掉了。
对于这种,我想显示成"I love she , ...",怎么做呢?
本座已达到法定娶亲年龄,欲购从速,价格面谈。
杀人容易爱人难。
作为一个太极美术工程师,我深刻地感受到:世风日下、人心不古。
http://StupidBeauty.com/Blog
离线hwbnew
只看该作者 1楼 发表于: 2010-09-21
期待
离线beaujolais
只看该作者 2楼 发表于: 2010-09-21
  1. QString str = "i love she, she love me.";
  2. QFont font("Arial",12,QFont::Normal);
  3. QFontMetrics fm(font);
  4. if(fm.width(str) > width())
  5. {
  6.      str = str.left(15) + "...";
  7. }
  8. painter->setFont(font);
  9. painter->drawText(0,0,with(),height(),Qt::AlignCenter,str);


离线wonder1976
只看该作者 3楼 发表于: 2010-12-04
参考 QFontMetrics::elidedText
离线roywillow

只看该作者 4楼 发表于: 2010-12-05
QString QFontMetrics::elidedText ( const QString & text, Qt::TextElideMode mode, int width, int flags = 0 ) const
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
快速回复
限100 字节
 
上一个 下一个