Imprimer un un qwtplot
Résolu
twiiiix
Messages postés
325
Date d'inscription
Statut
Membre
Dernière intervention
-
twiiiix Messages postés 325 Date d'inscription Statut Membre Dernière intervention -
twiiiix Messages postés 325 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je développe un programme avec Qt et je suis en train de créé le slot "imprimer", j'ai à imprimer dans l'ordre :
- du texte
- un QTableWidget
- du texte
- un QwtPlot
-un QTableWidget
J'ai fait ça :
Pour le moment l'impression marche , mais je ne sais pas comment imprimer le Qwtplot au milieu du reste.
J'avais commencé à faire sa :
Mais je ne sais pas comment ajouter le QPainter à la suite du QTextBrowser qui sera imprimer.
Comment faire ?
Merci d'avance.
Je développe un programme avec Qt et je suis en train de créé le slot "imprimer", j'ai à imprimer dans l'ordre :
- du texte
- un QTableWidget
- du texte
- un QwtPlot
-un QTableWidget
J'ai fait ça :
void fenPrincipale::imprimer() { QPrinter * printer = new QPrinter(QPrinter::HighResolution); printer->setPaperSize (QPrinter::A4); printer->setOrientation(QPrinter::Portrait); printer->setFullPage(true); QPrintDialog printDialog(printer, this); if ( printDialog.exec() == 1) { QTextBrowser *editor = new QTextBrowser; QTextCharFormat format; format.setFontPointSize(12); //On insere les infos QString modif ="Le texte" editor->setCurrentCharFormat(format); editor->setAlignment(Qt::AlignLeft); //ajout de notre QString a l'endroit du curseur editor->append(modif); //on crée un curseur a l'endroit du curseur actuel QTextCursor cursor = editor->textCursor(); cursor.beginEditBlock(); //Creation du format du tableau qui sera imprimer QTextTableFormat tableFormat; tableFormat.setAlignment(Qt::AlignHCenter); tableFormat.setAlignment(Qt::AlignLeft); tableFormat.setBackground(QColor("#ffffff")); tableFormat.setCellPadding(3); tableFormat.setCellSpacing(3); //Creation du tableau qui sera imprimé avec le nombre de colonne //et de ligne que contient le tableau mis en parametre QTextTable *tableau = cursor.insertTable(vit->rowCount()+1, vit->columnCount(), tableFormat); QTextFrame *frame = cursor.currentFrame(); QTextFrameFormat frameFormat = frame->frameFormat(); frameFormat.setBorder(0); frame->setFrameFormat(frameFormat); //Format des HEADER du tableau QTextCharFormat format_entete_tableau; format_entete_tableau.setFontPointSize(9); format_entete_tableau.setFontWeight(QFont::Bold); //Format du texte des cellules du tableau QTextCharFormat format_cellule; format_cellule.setFontPointSize(9); //on ecrit les HEADERS du tableaux dans le tableau a imprimer for (int i = 0 ; i < vit->columnCount() ; i++ ) { //on selectionne la premiere cellule de chaque colonne QTextTableCell titre = tableau->cellAt(0,i); //on place le curseur a cet endroit QTextCursor cellCursor = titre.firstCursorPosition(); //on écrit dans la cellule cellCursor.insertText(vit->horizontalHeaderItem(i)->text(),format_entete_tableau); } } for (int y = 0 ; y < vit->rowCount(); y++ ) { //on selectionne la premiere cellule de chaque ligne QTextTableCell titre = tableau->cellAt(y+1,0); //on place le curseur a cet endroit QTextCursor cellCursor = titre.firstCursorPosition(); //on écrit dans la cellule cellCursor.insertText(vit->verticalHeaderItem(y)->text(),format_entete_tableau); } QTextTableCell cell; QTextCursor cellCursor; for (int row = 1; row < tableau->rows(); row ++) for (int col = 1; col < tableau->columns(); col ++) { cell = tableau->cellAt(row,col); cellCursor = cell.firstCursorPosition(); cellCursor.insertText(tr("%1").arg(vit->item(row-1,col)->text()),format_cellule); } //fin de l'edition cursor.endEditBlock(); //impression de notre editor dans le QPrinter initialisé au début de la fonction editor->print(printer); }:
Pour le moment l'impression marche , mais je ne sais pas comment imprimer le Qwtplot au milieu du reste.
J'avais commencé à faire sa :
QPainter p; plot->print(&p, QRect(0, 0, 800, 600));
Mais je ne sais pas comment ajouter le QPainter à la suite du QTextBrowser qui sera imprimer.
Comment faire ?
Merci d'avance.
A voir également:
- Imprimer un un qwtplot
- Imprimer un tableau excel - Guide
- Journal de naissance gratuit a imprimer - Télécharger - Histoire & Religion
- Comment imprimer en a5 - Guide
- Comment signer un pdf sans l'imprimer - Guide
- Parole de chanson francaise gratuite à imprimer - Télécharger - Vie quotidienne
5 réponses
J'ai peut-être une réponse; je dis 'peut-être' car je ne suis pas sûr de celle-ci; n'ayant pas d'imprimante sous la main, je n'ai pu essayer ! Mais depuis le temps que je lis ton 'SOS', j'ai pris le temps d'essayer 'Qwt' et de te livrer ma réflexion.
Je propose de dessiner le 'plot' dans un QTextEdit, et je suppose qu'ensuite un 'textEdit->print(printer)' imprimera son contenu, y compris le plot.
Voici un exemple (je ne mets que le strict nécessaire):
Bonne continuation.
Je propose de dessiner le 'plot' dans un QTextEdit, et je suppose qu'ensuite un 'textEdit->print(printer)' imprimera son contenu, y compris le plot.
Voici un exemple (je ne mets que le strict nécessaire):
QwtPlot plot(QwtText("Quelle est cette fonction ?")); QwtPlotCurve curve; QPixmap pixmap(300,200); pixmap.fill(QColor(Qt::green)); double tabX[13], tabY[13]; for (int i=0; i<13; i++) tabX[i] = i, tabY[i] = i*i; curve.setData(tabX, tabY, 13); curve.attach(&plot); plot.replot(); plot.print(pixmap); QTextEdit textEdit; QTextCursor cursor = textEdit.textCursor(); cursor.beginEditBlock(); cursor.insertHtml(QString("Plot --->")); cursor.insertImage(pixmap.toImage()); cursor.insertHtml(QString("--- Fin")); cursor.endEditBlock(); textEdit.print(printer);Ce n'est qu'une idée et il y a sans doute d'autres solutions ;-)
Bonne continuation.
Merci beaucoup pour ta réponse : )
Je suis en train de restructurer tout mon code, je testerais dès que j'ai fini, sinon je ne vois pas pourquoi ça ne marcherais pas ^^.
Je suis en train de restructurer tout mon code, je testerais dès que j'ai fini, sinon je ne vois pas pourquoi ça ne marcherais pas ^^.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question