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.

La necessità è quella di fare in modo che in una QLineEdit il testo sia sempre in maiuscolo.

Ci sono varie modalità per ottenere questo risultato, ed io ve ne presento una abbastanza semplice da mettere in pratica.

Aprite il file di intestazione del vostro widget e aggiungete uno SLOT:

private slots:
    void toUpper(const QString &text);

A questo punto passiamo al file di implementazione.

Ho scoperto che il sitema dei connect in Qt può essere molto flessibile!

Vi posto il mio esempio.

Ho un QPushButton collegato ad un evento:

void Articoli::on_btnCollezione_clicked() {

...............................

}

Supponiamo di voler eseguire un operazione in un thread secondario, e di voler aggiornare la nostra gui man mano che l'operazione va avanti: come possiamo fare questa cosa in Qt?

Molto semplicemente usando il metodo connect, i SIGNAL e gli SLOT.

Direi di cominciare dal nostro lavoro in background:

// workerthread.h
#ifndef WORKTHREAD_H
#define WORKTHREAD_H

#include <QMutex>
#include <QThread>

class WorkerThread : public QThread
{
    Q_OBJECT
public:
    explicit WorkerThread(QObject *parent = 0, bool b = false);
    void run();
    bool stop;

signals:
    void valueChanged(QString text);
    void finished();
};

#endif // WORKTHREAD_H

Ho cominciato lo sviluppo di un programmino in C++ e le Qt.

Con Qt-Creator, l'IDE ufficiale per lo sviluppo cone le Qt, ho creato un progetto Qt Widget Project -> Qt Gui Application.

Mi sono ritrovato con una QWindow e dall'editor grafico ho aggiungo due QAction al menu.

A questo punto il problema era: come fare a collegare un'azione/evento alla voce del menu (QAction)?

Bene, vediamo come fare.

I file che ci interessano sono mainwindow.h e mainwindow.cpp.

In pratica dobbiamo aggiungere una funzione che poi collegheremo alla QAction.

Inizialmente i file erano questi:

    #ifndef MAINWINDOW_H

    #define MAINWINDOW_H

    #include <QMainWindow>

    namespace Ui {

        class MainWindow;

    }

    class MainWindow : public QMainWindow

    {

        Q_OBJECT

    public:

        explicit MainWindow(QWidget *parent = 0);

        ~MainWindow();

    private:

        Ui::MainWindow *ui;

    };

    #endif // MAINWINDOW_H

    #include "ui_mainwindow.h"

    #include "mainwindow.h"

    MainWindow::MainWindow(QWidget *parent) :

        QMainWindow(parent),

        ui(new Ui::MainWindow)

    {

        ui->setupUi(this);

    }

    MainWindow::~MainWindow()

    {

        delete ui;

    }

I file predefiniti dopo la creazione del progetto.

A questo punto dobbiamo creare una funzione che venga eseguita al click sulla voce del menu (o all'esecuzione della scorciatoia da tastiera che è possibile impostare anche dall'editor grafico).