QLabel 如何让文字竖着显示
换行的方法
我遇到了一个难题,想让QLabel横向显示,再网上找了一圈发现只有一个换行的程序,简单快捷,大致代码如下:
label->setWordWrap(true);
label->setAlignment(Qt::AlignTop);L
QString s = “测试abcdefg word”;
label->setText(s.split("", QString::SkipEmptyParts).join("\n"));
这个确实可以达到竖向显示文本的效果,但是效果不是笔者想要的。
继承QLabel的方法
1.继承QLabel,笔者中间对QLabel做了一层封装,所以用的是Label,你们有需要直接用QLabel就好了;
2.重写virtual void initPainter(QPainter* painter) const 函数
其中主要就是要对painter旋转90度,然后把旋转好的painter 回传给QLabel的函数,这样就完成了旋转的功能,现在就可以看到文字旋转过来了,但是显示框的大小没变,所以会导致文字显示不全;
3.旋转QLabel的宽高
写个独立接口把宽高调换一下就好了。
还有一些细节,你们自己去琢磨吧!基本上都写出来了,SS9显示效果如下: