Bonjour
Je veux dans un QTableWidget controler le contenue des valeurs tapés dans les cellules d'une certaine collonne (pour permettre uniquement les numéros).
Apparemment ce n'est pas possible de réaliser ce contrôle sur les QTableWidgetItem
Donc je suis obligé de passer par les QLineEdit (visiblement moche ) et là il apparait un autre problème quand la QTableWidget à une taille dynamique.
je veux récupéré le QLineEdit avec la fonction cellWidget() mais je reçois un objet de type QWidget et non QLineEdit et du coup je ne peux pas utiliser la fonction setValidator() pour réaliser mon contrôle
Est-ce qu'il y a une manière d'appliquer des QValidator sur les QTableWidgetItem ?
Est-ce qu'il faut convertir le QWidget retourner par cellWidget() en QLineEdit (Comment ?) ou alors qu'est qu'il faut faire ?
(résultat dans la pièce jointe)
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 #include <QApplication> #include <QTableWidget> #include <QLineEdit> #include <QTableWidgetItem> #include <QStringList> int main(int argc, char *argv[]) { QApplication a(argc, argv); int tailleDynamique = 5; // example la taille d'un tableau dans une BDD QTableWidget table(tailleDynamique, 3); QString nom, prenom; int rowTable=0; for (int i=0; i<tailleDynamique; i++){ nom = "aaa" + QString::number(rowTable); prenom = "bbb" + QString::number(rowTable); table.setItem(rowTable, 0, new QTableWidgetItem(nom)); table.setItem(rowTable, 1, new QTableWidgetItem(prenom)); table.setCellWidget(rowTable, 2, new QLineEdit); // Modifications des propriétés de QLineEdit // setStyleSheet fonction de QWidget : ça marche. table.cellWidget(rowTable, 2)->setStyleSheet("border: 1px solid red"); // setValidator fonction de QLineEdit: ERROR. //table.cellWidget(rowTable, 2)->setValidator(new QDoubleValidator); rowTable++; } table.show(); return a.exec(); }
Partager