combobox

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
Selezionare un elemento in una ComboBox con la tastiera in JavaFX

Selezionare un elemento in una ComboBox con la tastiera in JavaFX

Se usate Swing e il componente JComboBox, avrete notato che potete selezionare un elemento usando la tastiera.

In pratica, dopo aver impostato il focus sulla JComboBox, scrivete sulla tastiera per cercare l'elemento che vi serve.

Questo comportamento non è presente sul relativo componente ComboBox di JavaFX.

Mi piacerebbe molto sapere il perchè....

Mattepuffo's logo
Usare le Combobox in TornadoFX e Kotlin

Usare le Combobox in TornadoFX e Kotlin

Continuiamo ad esplorare TornadoFX, framework per la costruzione di interfacce grafiche in Kotlin.

Oggi vediamo come usare le Combobox; le riempiremo da una FXCollections, ed intercetteremo il valore selezionato.

Non è un esempio complesso, ma un punto da cui partire.

Mattepuffo's logo
Usare una custom ListCell in JavaFX

Usare una custom ListCell in JavaFX

Vogliamo riempire una ComboBox in JavaFX con oggetti custom: come possiamo fare?

Adesso lo vediamo, partendo proprio dall'oggetto custom:

public class Author {

    private String id;
    private String name;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return name;
    }

    @Override
    public boolean equals(Object obj) {
        if (!(obj instanceof Author)) {
            return false;
        }
        Author a = (Author) obj;
        return this.name.equals(a.toString());
    }

    @Override
    public int hashCode() {
        int hash = 3;
        hash = 59 * hash + (this.name != null ? this.name.hashCode() : 0);
        return hash;
    }

Nulla di trascendentale.

Mattepuffo's logo
Riempire dinamicamente una JTextField

Riempire dinamicamente una JTextField

Mi sono fatto un programmino che carica una colonna da un foglio excel con gli indirizzi email dentro una JComboBox.

Selezionando le voci della JCB mi si riempie dinamicamente una JTextField con ogni indirizzo separato da virgola.

Poi posso inviare la mail agli indirizzi scelti.

Su come leggere un foglio excel potete vedere questo articolo; per inviare la mail quest'altro.

Manca in pratica solo la comodità del riempimento.

Quello che voglio ottenere è questo comportamento: all'inizio la JCB ha il valore * e poi tutti gli indirizzi estrpolati da excel; quando clicco sua una voce che non è * viene aggiunto un indirizzo email seguito dalla virgola come separatore.

La cosa è molto comoda perchè nn dovete stare a pensare continuamente a scrivere i vari indirizzi; vi basterà salvarli una vola su excel.

Per far partire il tutto dovete creare un evento itemStateChanged.

Io l'ho creato con gli automatismi di NetBeans, quindi il codice non è dei più puliti.