In questo caso specifico, vogliamo solo stampare in PDF una QTableWidget; quindi:

  • non stiamo effettuando una vera e propria esportazione
  • questo codice si può tranquillamente usare anche per altri widget

Comunque, per eseguire questa operazione, ci avvaliamo di due oggetti:

Dovendo posizionare un widget Qt a seconda della dimensione del monitor, avevo necessità di identificarla in fase di esecuzione del programma.

In verità la cosa è stata abbastanza semplice, e senza includere librerie di nessun tipo.

Oggi vediamo un semplice metodo per esportare una QTableWidget in CSV.

Sarà un esempio basico, nel senso che ci limiteremo a buttare dentro dati estratti, senza nessun tipo di formattazione.

Io mi sono creato una classe apposita (SaveTable) che in input si prende il path di salvataggio del file, e la QTableWidget de leggere.

Questo il file di intestazione:

#ifndef SAVETABLE_H
#define SAVETABLE_H

#include <QObject>
#include <QTableWidget>
#include <QFile>
#include <QDir>
#include <QTextStream>

class SaveTable {
public:
    SaveTable(QString strFile, QTableWidget *tbl);
    virtual ~SaveTable();
};

#endif // SAVETABLE_H

Abbiamo solo il costruttore, dove andremo a svolgere le operazioni.

In pratica, abbiamo una QTableWidget piena di righe, e vogliamo cercare al suo interno scrivendo in una QLineEdit.

Non è molto difficile ottenere questo risultato!

Prima di tutto aggiungiamo un SLOT nel file di intestazione del nostro QWidget:

private slots:
    void txtSearch(QString search);

Personalmente trovo Singleton utile in alcuni casi.

E quindi continuo ad usarlo anche se a molti non piace.

Ne abbiamo visti diversi esempi in vari linguaggi, ed oggi aggiungiamo l'esempio in C++.

Abbiamo tre file:

  • singleton.h
  • singleton.cpp
  • main.cpp