是的,我已经搜索了stackoverflow并实现了至少3个我看过的东西,没有成功。我是C ++的新手,尝试用SoloLearn学习,但你只有基础知识。
我正在尝试开发一个OpenSource软件来批量创建电子邮件签名,并以各种格式导出这些签名。
到目前为止,我能够在Windows上搜索背景图像,将其显示为预览,但是,我无法在图像中插入任何文本。这是我的代码:
void CriaAssinaturas::on_selecionarImagemDeFundo_clicked()
{
QString filter = "All Files (*.*) ;; JPEG File (*.jpeg) ;; BMP File (*.bmp)";
QString file_name = QFileDialog::getOpenFileName(this, "Carregar uma imagem", QDir::homePath(), filter) ;
QMessageBox::information(this, "Arquivo selecionado:", file_name);
QFile file(file_name);
file.open(QIODevice::ReadWrite);
QPixmap previaAssinatura(file_name);
ui->exemploAssinatura->setPixmap(previaAssinatura);
}
// QString nome = ui->nomeInput->text();
// ui->showNome->setText(nome);
// QPainter pintaNome;
// pintaNome.drawText(630,170,"Print something");
void CriaAssinaturas::on_salvarAssinatura_clicked()
{
// ui->exemploAssinatura->grab().save("fileName.jpg");
QString file_name = QFileDialog::getSaveFileName(this, "Salvar uma imagem", QDir::homePath());
QMessageBox::information(this, "Arquivo salvo em QDir::homePath()", file_name);
}
void CriaAssinaturas::on_criarAssinatura_clicked()
{
QString txt = ui->nomeInput->text();
ui->showNome->setText(txt);
}
答案 0 :(得分:0)
假设您已经在ui->exemploAssinatura
上设置了像素图,并且ui->showNome
是 QLabel ,您希望在on_criarAssinatura_clicked()
中显示重叠的文字。 :
QPixmap pixmap(ui->exemploAssinatura->pixmap());
QPainter pintaNome(&pixmap);
pintaNome.drawText(630, 170, ui->nomeInput->text());
ui->showNome->setPixmap(pixmap);