QPainter::drawText怎么修改文字方向

时间:2022-03-01 20:01:13
正常我们的文字书写方向是水平方向,现在需要调整为竖直方向。要怎么写?纠结

5 个解决方案

#1


可以用这个函数 flags就是设置对齐方式

void QPainter::drawText ( const QRectF & rectangle, int flags, const QString & text, QRectF * boundingRect = 0 )

#2


引用 1 楼 ao834391367 的回复:
可以用这个函数 flags就是设置对齐方式

void QPainter::drawText ( const QRectF & rectangle, int flags, const QString & text, QRectF * boundingRect = 0 )

不是对齐方式,是文本的书写方向,像word文档那样,有横向文本框,纵向文本框。我现在需要的就是要做纵向文本框。在flags中,我不知道哪个属性是纵向文本,对齐的我倒是都找得到

#3


比如文本是:abc,要求写出来是:
a
b
c

是吧,我也不知道怎么办,我是把字符串转换成如下格式:a\nb\nc

就是在每个字符间加个\n,然后drawtext的时候用void QPainter::drawText ( const QRectF & rectangle

这种方式适合字符不多的情况

#4


引用 3 楼 accsoar 的回复:
比如文本是:abc,要求写出来是:
a
b
c

是吧,我也不知道怎么办,我是把字符串转换成如下格式:a\nb\nc

就是在每个字符间加个\n,然后drawtext的时候用void QPainter::drawText ( const QRectF & rectangle

这种方式适合字符不多的情况

感觉这个方法不错,再问你一下,用这个方法,纵向多行的情况会自动分行吗?

#5


unfortunately,不会自动分行……

#1


可以用这个函数 flags就是设置对齐方式

void QPainter::drawText ( const QRectF & rectangle, int flags, const QString & text, QRectF * boundingRect = 0 )

#2


引用 1 楼 ao834391367 的回复:
可以用这个函数 flags就是设置对齐方式

void QPainter::drawText ( const QRectF & rectangle, int flags, const QString & text, QRectF * boundingRect = 0 )

不是对齐方式,是文本的书写方向,像word文档那样,有横向文本框,纵向文本框。我现在需要的就是要做纵向文本框。在flags中,我不知道哪个属性是纵向文本,对齐的我倒是都找得到

#3


比如文本是:abc,要求写出来是:
a
b
c

是吧,我也不知道怎么办,我是把字符串转换成如下格式:a\nb\nc

就是在每个字符间加个\n,然后drawtext的时候用void QPainter::drawText ( const QRectF & rectangle

这种方式适合字符不多的情况

#4


引用 3 楼 accsoar 的回复:
比如文本是:abc,要求写出来是:
a
b
c

是吧,我也不知道怎么办,我是把字符串转换成如下格式:a\nb\nc

就是在每个字符间加个\n,然后drawtext的时候用void QPainter::drawText ( const QRectF & rectangle

这种方式适合字符不多的情况

感觉这个方法不错,再问你一下,用这个方法,纵向多行的情况会自动分行吗?

#5


unfortunately,不会自动分行……