Bonjour la communauté,

J'ai créé mon petit modèle perso à partir de QAsbtractItemModel, afin de le personnaliser, et aimerais avoir votre aide pour masquer les éléments de la seconde colonne par des astérisques (ce sont des mots de passe).

Actuellement, je crée mon tableView comme ceci (c'est uniquement un tableau de deux colonnes QStringList : des utilisateurs et leurs mots de passe) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class KoCAccountsModel : public QAbstractListModel
{
	Q_OBJECT
 
public:
	KoCAccountsModel(const QStringList &strings, const QStringList &strings2, QObject *parent = 0)
		: QAbstractListModel(parent), usernamesList(strings), passwordsList(strings2) { }
 
	int rowCount(const QModelIndex &parent = QModelIndex()) const;
	int columnCount(const QModelIndex &parent = QModelIndex()) const;
	QVariant data(const QModelIndex &index, int role) const;
	QVariant headerData(int section, Qt::Orientation orientation,
						int role = Qt::DisplayRole) const;
	Qt::ItemFlags flags(const QModelIndex &index) const;
	bool setData(const QModelIndex &index, const QVariant &value,
	int role = Qt::EditRole);
	bool insertRows(int position, int rows, const QModelIndex &index = QModelIndex());
	bool removeRows(int position, int rows, const QModelIndex &index = QModelIndex());
 
private:
	QStringList usernamesList;
	QStringList passwordsList;
 
};
J'ai implémenté mes fonctions comme je le désirais, et j'ai bien mes deux colonnes avec leurs titres juste en chargeant par exemple comme ceci :
accounts = new KoCAccountsModel(mw->kocUsername, mw->kocPassword);
tableView->setModel(accounts);

Cependant, bien évidemment la seconde colonne est en "clair", et j'aimerais changer le rendement pas des astérisques, est-ce possible ?
Je voudrais que ce soit réellement uniquement le "rendement visuel" qui soit des astérisques.
L'utilisateur doit pouvoir changer le contenu des cellules, et ça doit afficher des astérisques quand il entre ses mots de passe.