使用 Qt - C++将文本插入标签/图像



是的,我已经搜索了stackoverflow并实现了我看到的至少5件事中的3件,但没有成功。我是C++新手,尝试使用SoloLearn学习,但您只得到了基础知识。

我正在尝试开发一个开源软件来批量创建电子邮件签名,并以各种可能的格式导出这些签名。

到目前为止,我可以在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);
}

假设您已经在ui->exemploAssinatura上设置了一个像素图,并且您想要在其中显示叠加文本的 QLabel ui->showNomeon_criarAssinatura_clicked()试试这个:

QPixmap pixmap(ui->exemploAssinatura->pixmap());
QPainter pintaNome(&pixmap);
pintaNome.drawText(630, 170, ui->nomeInput->text());
ui->showNome->setPixmap(pixmap);

查看QPainter和QFont,了解如何为文本添加一些艺术效果。

相关内容

  • 没有找到相关文章

最新更新