如何用Qt中的其他字母写文本?

时间:2014-03-28 07:01:18

标签: qt

我想用某种模式编写文本,比如假设我想用A编写A.可以有人建议如何在Qt中实现这一点。我在Qt中得到了插件示例,这实际上是在画家上绘画,但是我想要用给定的字母绘制文本。 请帮帮我。

1 个答案:

答案 0 :(得分:3)

你想要那样的东西吗?

image

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