cpp

Mattepuffo's logo
Ricerca binaria in C++

Ricerca binaria in C++

La ricerca binaria è un algoritmo che viene usato per trovare gli elementi in un array ordinato; il fatto che sia ordinato è fondamentale e obbligatorio.

Questo algoritmo è più efficiente della ricerca sequenziale, in quanto usa la logica del divide et impera.

In sostanza si procede suddividendo l'array man mano che la ricerca non trova l'elemento, andando a ricercarlo solo in una parte dell'array, che diventa sempre più piccolo.

Mattepuffo's logo
Eseguire deploy di applicazioni Qt su Linux

Eseguire deploy di applicazioni Qt su Linux

Allora, mentre Windows e macOS hanno strumenti appositi per il deploy di applicazioni Qt, Linux no.

Ne ha uno non ufficiale, ma io riscontro sempre problemi.

Quindi sono arrivato ad una procedura che mi funziona; vi premetto che è un pò rozza, ma se funziona va bene così.

Mattepuffo's logo
QRSync: una gui per rsync in Qt

QRSync: una gui per rsync in Qt

Ho deciso di scrivere per divertimento una gui per rsync, il famoso programma per il backup usato molto in ambito Linux e BSD (e funziona anche su macOS).

L'ho scritto in Qt, ed usa un database SQLite.

Sostanzialmente è l'unica dipendenza; potete installarlo facilmente.

Mattepuffo's logo
Eseguire comandi in Qt con QProcess

Eseguire comandi in Qt con QProcess

QProcess è la classe per Qt preposta all'esecuzione di comandi esterni.

Oggi vediamo come usarla, e nello specifico:

  • eseguiremo un comando
  • cattureremo lo stanard input visualizzandolo su una QPlainTextEdit
  • cattureremo lo stanard error visualizzandolo su una QPlainTextEdit

Così facendo vedremo l'output del comando in tempo reale.

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