我想用某种模式编写文本,比如假设我想用A编写A.可以有人建议如何在Qt中实现这一点。我在Qt中得到了插件示例,这实际上是在画家上绘画,但是我想要用给定的字母绘制文本。 请帮帮我。
答案 0 :(得分:3)
你想要那样的东西吗?
QBrush generate_letter_brush(QString text, QFont font) {
QFontMetrics font_metrics(font);
QPixmap pixmap(font_metrics.boundingRect(text).size());
pixmap.fill(Qt::transparent);
QPainter painter(&pixmap);
painter.setFont(font);
painter.drawText(pixmap.rect(),text);
painter.end();
return QBrush(pixmap);
}
QImage image(QSize(200, 200), QImage::Format_ARGB32);
image.fill(QColor(200, 255, 200));
QPainter painter(&image);
painter.setFont(QFont("", 80));
QBrush brush = generate_letter_brush("a", QFont("", 1));
painter.setPen(QPen(brush, 1));
painter.drawText(image.rect(), "A");
painter.end();
image.save(filename, "BMP"); //save
ui->label->setPixmap(QPixmap::fromImage(image)); //or display