C - C++

Mattepuffo's logo
Inserire QPushButton in QTableWidget

Inserire QPushButton in QTableWidget

Sostanzialmente riempio una QTableWidget da database, e voglio mettere un QPushButton nelll'ultima colonna (il classico tasto per cancellazione).

Non andremo a vedere come reperisco i dati da db, ma diamo per scontato di avere una QList perfettamente riempita.

Nel nostro file di intestazione andiamo ad aggiungere questo:

private slots:
    void delSync(QTableWidgetItem *item);

private:
    void createMainLayout();

Mattepuffo's logo
Passare un QWidget ad uno SLOT in Qt

Passare un QWidget ad uno SLOT in Qt

Nella mia interfaccia create in Qt, ho due QLineEdit e due QPushButton.

Entrambi i bottoni avviano un QFileDialog per la scelta di una cartella; ma a seconda di quale bottone viene cliccato, devo riempire una QLineEdit piuttosto che l'altra.

Mattepuffo's logo
Riempire una QComboBox da QMap

Riempire una QComboBox da QMap

Oggi vediamo come riempire una QComboBox usando un oggetto QMap.

Vedremo anche come recuperare la chiave del valore selezionato (grazie al Qt forum per il suggerimento).

Vi posto tutta la classe, comprensive di intestazione:

#ifndef DIALOGADD_H
#define DIALOGADD_H

#include <QLineEdit>
#include <QFileDialog>
#include <QPushButton>

#include <QDebug>

namespace Ui {
class DialogAdd;
}

class DialogAdd : public QDialog {
    Q_OBJECT

public:
    explicit DialogAdd(QWidget *parent = nullptr);
    virtual ~DialogAdd();

private slots:
    void getSync();

private:
    QMap<QString, QString> syncMap;
    Ui::DialogAdd *ui;
};

#endif // DIALOGADD_H

Mattepuffo's logo
Usare QSplitter in Qt

Usare QSplitter in Qt

In pratica la mia finestra Qt deve essere divisa in due parti, di cui la sinistra grande il 20% della finestra; la destra il restante.

Mi hanno suggerito di usare il componente QSplitter, ed è quello che ho fatto.

Mattepuffo's logo
Impostare la dimensione della finestra in Qt

Impostare la dimensione della finestra in Qt

Ho deciso di creare un programma in Qt senza usare l'interfaccia grafica; e quindi scrivendo tutto il codice.

La mia finestra deve avere queste caratteristiche:

  • essere centrata
  • partire grande l'80% della risoluzione dello schermo
  • avere una minima risoluzione

Ovviamente voi potete "levare" quello che non vi serve.

Mattepuffo's logo
Utilizzare la clipboard in Qt con QClipboard

Utilizzare la clipboard in Qt con QClipboard

Non so bene a cosa possa essere utile memorizzare la clipboard in un programma, però ero curioso di capire come funziona il componente Qt QClipboard!

Ad essere sincero ho avuto un pò di difficoltà nel capire il senso, comunque vi mostro un esempio.

Mattepuffo's logo
Connessione a PostgreSQL con Qt

Connessione a PostgreSQL con Qt

Qt offre già parecchi driver per database; basta includere sql nel file del progetto per accedere a tutte le classi:

QT += core gui sql

Però, in determinati casi, è comunque necessario installare delle librerie; ed è il caso di PostgreSQL!

Infatti, avendo il database installato su un altro pc, sul mio pc ho dovuto installare libpq.

Su Arch Linux:

# pacman -S libpqxx

Mattepuffo's logo
Centrare una QMainWindow in Qt

Centrare una QMainWindow in Qt

Quando lanciamo la finestra principale da QtCreator, la QMainWindow risulta centrata rispetto al desktop.

Poi avviamo il programma senza passare per QtCreator, e la finestra è decentrata.

Ho provato a vedere nel relativo file .ui, ma non ho trovato nulla al riguardo.

Mattepuffo's logo
Avere una sola istanza di un programma in Qt

Avere una sola istanza di un programma in Qt

Ho creato un piccolo programma per la mia azienda, che non deve essere lanciato più di una volta sullo stesso pc.

Questo perchè esegue diverse operazioni su database, e non è cosa buona tenere il programma aperto più volte.