首页| 论坛| 消息

标题:Qt 怎样使字体随着外围矩形大小的改变而改变?
作者:lclflash
日期:2010-07-14 09:13
内容:

我想实现的效果是:当外围矩形的高变化了则字体的高度随着变化,但宽度不变。
一句话,就是字体随着矩形变化。


#1 [xtfllbl 07-14 10:56]
字体大小由字号控制,矩形变化时你设置字号就是了,但是你要求字体单方向变化,这个有点难度,考虑一下把字画上去还是怎么的。
#2 回 1楼(xtfllbl) 的帖子 [lclflash 07-14 11:31]
设置字号只能是字体成比例放大,以前我用VC已经实现过就是改变字体宽和高,但在QT里找了半天还是不知道怎么实现,大家帮帮忙呀!!! 我见过别人用QT已经实现了这个功能,就是不知道原理呀
#3 [sbtree 07-14 18:03]
QFont中如下函数可以等比例改变字的大小:
void setPixelSize ( int pixelSize )
void setPointSize ( int pointSize )
void setPointSizeF ( qreal pointSize )
另外void QFont::setStretch ( int factor ) 可以只拉伸宽度,可以将原字体最小缩小到百分之一,最大到40倍
两种情况结合起来,几乎可以做到任意变化
#4 回 3楼(sbtree) 的帖子 [lclflash 07-14 21:16]
我还是不太明白,如果只改变字体高度的话 应该怎么办呀?
#5 Re:回 3楼(sbtree) 的帖子 [sbtree 07-15 00:27]
引用第4楼lclflash于2010-07-14 21:16发表的 回 3楼(sbtree) 的帖子 :
我还是不太明白,如果只改变字体高度的话 应该怎么办呀?
依据高度设置好字体大小之后可以得到设置后的文字占据的Rec的t宽度,然后用原始的宽度除以这个宽度到的结果再乘以stretch的返回值,作为新的stretch值传递给setStretch不就可以了吗?

<< 1 2 3 >> (1/3)

回复 发表
主题 版块