2017-11-01 9 views
0

예 이미 stackoverflow를 검색하고 성공한 것으로 보아 적어도 5 가지를 3 가지 이상 구현했습니다. 저는 C++을 처음 접했고 SoloLearn으로 배우려고했지만 기본 만 있습니다.Qt - C++을 사용하여 레이블/이미지에 텍스트 삽입

전자 메일 서명을 일괄 적으로 작성하고 가능한 모든 종류의 형식으로 해당 서명을 내보낼 수있는 OpenSource 소프트웨어를 개발하려고합니다.

지금까지 Windows에서 배경 이미지를 검색하여 미리보기로 표시 할 수 있지만 이미지에 텍스트를 삽입 할 수는 없습니다. 당신이 픽스맵이 이미 ui->exemploAssinaturaui->showNome에 설정되어

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 goddamnit"); 

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); 
} 
+1

qpixmap에서 [drawtext] (http://doc.qt.io/qt-5/qpainter.html#drawText)와 함께 QPainter를 사용할 수 있습니다. – JLev

+0

QLabel이란 무엇입니까? – eyllanesc

+0

ui-> showNome-> setText (txt); 내 Qlabel을 보여줘. –

답변

0

가정이 시도 on_criarAssinatura_clicked()에서의 오버레이 텍스트를 표시 할 QLabel 다음과 같습니다 :

QPixmap pixmap(*ui->exemploAssinatura->pixmap()); 
QPainter pintaNome(&pixmap); 

pintaNome.drawText(630, 170, ui->nomeInput->text()); 
ui->showNome->setPixmap(pixmap); 
여기처럼 내 코드는 모습입니다

텍스트에 예술적 효과를 추가하는 방법에 대한 아이디어는 QPainterQFont을 확인하십시오.