Anche Qt, come molti framework per la costruzione di gui, ha un widget apposito per le date: QDateEdit.

Usarlo è abbastanza semplice; nel caso più banale basta questo:

QDateEdit calendar = new QDateEdit();

Qt mette a disposizione diversi validatori da usare anche nelle caselle di input.

Ad esempio, in una QLineEdit, dovevo impostare l'accettazione di solo numeri.

Quindi, se si scrive una lettera, questa non deve essere scritta nella casella di testo.

Per fare questo possiamo usare QIntValidator.

Oggi vediamo come intercettare il doppio click su una QTableWidget.

Parto dal presupposto che la QTableWidget sia già aggiunta alla finestra, e che in generale abbiato già creato la vostra GUI.

In una QLabel, dovevo visualizzare una immagine da url.

Dove l'url è composto da una parte fissa, e una parte dinamica (che corrisponde all'immagine vera e propria).

Vi propongo il QWidget per intero.

Non parleremo dei tab intesi come QTabWidget, ma l'ordine di quando usiamo il tab per navigare tra i componenti della gui.

In sostanza, come suppongo già sappiate, quando state in una gui, potete usare il tasto tab per navigare tra i componenti.

L'ordine in cui si naviga viene scelto dal Qt Designer man mano che si aggiungo i componenti nella finestra.

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:

Qt Creator, porta con un ottimo Qt Designer per la creazione di gui in modalità drag-and-drop.

Alcuni dei suoi pochi limiti, sono l'espandibilità dei componenti nel momento in cui massimizzi la finestra.

Si può ovviare facilmente a questo cosa usando la funzione di auto-expanding!

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