Ein Beispiel für die Verwendung dieser Bibliothek wurde im vorherigen Artikel über die Arbeit mit QCustomPlot gegeben. Nachdem das Diagramm erstellt wurde, kann es jedoch erforderlich sein, es in einer Grafikdatei zu speichern. Die Bibliothek QCustomPlot stellt hierfür bereits die notwendigen Methoden bereit. Sie müssen lediglich eine Datei zum Speichern erstellen und den Pfad zur Datei an eine der Methoden zum Speichern des Bildes übergeben.
Methoden zum Speichern eines Bildes
saveRastered(const QString &fileName, int width, int height, double scale, const char *format, int quality) saveJpg(const QString &fileName, int width, int height, double scale, int quality); savePng(const QString &fileName, int width, int height, double scale, int quality); saveBmp(const QString &fileName, int width, int height, double scale); savePdf(const QString &fileName, bool noCosmeticPen, int width, int height, const QString &pdfCreator, const QString &pdfTitle);
speichernRastered
Es ist die grundlegende Methode für Methoden: saveJpg, savePng, saveBmp Das heißt, es wird in all diesen Methoden aufgerufen. Innerhalb der Methode saveRastered wird eine QPixmap-Instanz erstellt, mit der das Bild aus dem QCustomPlot-Widget gespeichert wird Bei dieser Methode können Sie den Typ der gespeicherten Datei angeben. Während die anderen drei Methoden nur Ihre Arbeit und das Schreiben von Code vereinfachen, müssen Sie den Dateityp nicht mehr angeben.
PDF speichern
Diese Methode steht allein und verwendet nicht QPixmap , sondern funktioniert über QDrucker . Obwohl die Verwendungslogik in der Minimalversion ähnlich ist wie bei den anderen Methoden.
Bild speichern
Erweitern wir den Programmcode aus der vorherigen Lektion, indem wir die Schaltfläche Speichern hinzufügen, in deren Slot das Bild in einer Datei entlang des folgenden Pfads gespeichert wird C: /example/customPlot.png.
Neben dem Pfad zur Datei ist es möglich, die Qualität des Bildes, seinen Maßstab und Parameter der Seiten anzugeben.
// Слот кнопки Save, для сохранения изображения в файл void MainWindow::on_pushButton_clicked() { QString fileName("C:/example/customPlot.png"); QFile file(fileName); if (!file.open(QIODevice::WriteOnly)) { qDebug() << file.errorString(); } else { wGraphic->savePng(fileName); } }