QT实现文字转图片的方式有很多,本文介绍的是界面转图片的方式。
本文使用了QLabel, QPixmap两个类实现将QLabel控件转化为图片,
render方法
QWidget提供了两个render方法,参考帮助文档将界面导出到QPixmap类型变量中
QPixmap::save方法
save方法实现将QPxmap信息保存成图片
扩展应用:文字转图片
- 使用QLabel控件
- 将label控件背景设置透明
- label导出到QPixmap类
- 保存为图片
bool Widget::textSavePNG(QString dir,QString str, int pixelSize,QString txtColor, QString fontFamily)
{
QLabel *label = new QLabel();
QFont font = label->font();
font.setPixelSize(pixelSize);
label->setAttribute(Qt::WA_TranslucentBackground, true);//设置背景透明
label->setFont(font);
label->resize(label->fontMetrics().width(str),pixelSize);
label->setStyleSheet(txtColor);
label->setText(str);
QPixmap pixmap(label->size());
pixmap.fill(Qt::transparent);//设置pixmap背景透明
label->render(&pixmap);
return pixmap.save(dir,"PNG");
}