Qt4 计算渲染QLabel的大小
我想将一个复杂的富文本QLabel内容渲染到一个pixmap,这样我可以为该pixmap设置动画,比每帧渲染QLabel平滑得多 我如何知道应该创建多大尺寸的pixmap。有没有办法询问QLabel,呈现内容时需要哪个首选边界矩形?不受任何父布局的限制Qt4 计算渲染QLabel的大小,qt4,qlabel,qt4.8,Qt4,Qlabel,Qt4.8,我想将一个复杂的富文本QLabel内容渲染到一个pixmap,这样我可以为该pixmap设置动画,比每帧渲染QLabel平滑得多 我如何知道应该创建多大尺寸的pixmap。有没有办法询问QLabel,呈现内容时需要哪个首选边界矩形?不受任何父布局的限制 我尝试了QLabel::fontMetrics,但这当然不适用于富文本内容。还有什么我可以使用的吗?通常,调用QLabel::adjustSize()并检索QLabel::size()是有效的 但是,如果QLabel没有父级(即,它被视为“顶级”
我尝试了QLabel::fontMetrics,但这当然不适用于富文本内容。还有什么我可以使用的吗?通常,调用QLabel::adjustSize()并检索QLabel::size()是有效的 但是,如果QLabel没有父级(即,它被视为“顶级”小部件),则Qt会将小部件的大小限制为屏幕大小的2/3。我遇到了这个问题——我不明白为什么QLabel总是被剪裁成1280像素(在1920x1080屏幕上) 但是sizeHint()总是返回标签的正确大小 最后,我做到了:
label->adjustSize();
label->resize(label->sizeHint());
QPixmap pixmap(label->size());
label->render(&pixmap);
重要的是调整标签的大小,而不仅仅是将pixmap设置为标签的sizeHint(),因为它仍然可以被剪裁。您应该能够通过简单地使用
QPixmap::grabWidget(标签)
实现这一点;不需要尺寸。详见文档