Bonjour ,

j'ai un petit soucis d'actualisation sur un Qtable Widget, j'ajoute bien mes items dans un Qtable Widget (voir la fin du code)
Mais ces données ne se mettent à jour que quand je redimensionne ma fenêtre, sélectionne un élément de mon tableau (qui est vide) ou quand je scroll dedans. Et la tout apparait comme par magie

Avez vous des pistes concernant ce soucis car je trouve aucune info sur ce type de problème ?
Comme ça je dirais qu'il faudrait que j'actualise mon widget, mais je ne trouve aucune méthode qui fonctionne

merci d'avance



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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
 
class Recherche_article(QtWidgets.QWidget):
    def __init__(self, parent=None):
        super(Recherche_article, self).__init__(parent)
        self.setup_ui()
 
    def setup_ui(self):
        self.create_widgets()
        self.modify_widgets()
        self.create_layouts()
        self.add_widgets_to_layouts()
        self.setup_connections()
 
    def create_widgets(self):
        self.label = QtWidgets.QLabel("Recherche article", self)
 
        self.le_code_art = QtWidgets.QLineEdit(self)
        self.btn_search = QtWidgets.QPushButton('Recherche', self)
 
        self.table_widget = QtWidgets.QTableWidget(50, 4, self)
 
    def modify_widgets(self):
        self.label.setFixedHeight(25)
        self.le_code_art.setFixedHeight(25)
        self.le_code_art.setFixedWidth(200)
 
        # Bloquer la modification de la table widget
        self.table_widget.setEditTriggers(QtWidgets.QTableWidget.NoEditTriggers)
 
    def create_layouts(self):
        self.layout_home = QtWidgets.QGridLayout()
 
    def add_widgets_to_layouts(self):
        self.layout_home.addWidget(self.label, 1, 0, 1, 1)
 
        self.layout_home.addWidget(self.le_code_art, 2, 0, 1, 1)
        self.layout_home.addWidget(self.btn_search, 2, 1, 1, 1)
 
        self.layout_home.addWidget(self.table_widget, 3, 0, 5, 1)
 
        self.setLayout(self.layout_home)
 
    def setup_connections(self):
        self.btn_search.clicked.connect(self.search_CA)
 
    def search_CA(self):
        CA = self.le_code_art.text()
        CA = f"%{CA}%"
        selections = BDD().search_code_article(CA)
        print(selections)
 
        self.table_widget.clearContents()
        row = 0
        for s in selections:
            for i in range(0, len(s)):
                item = QtWidgets.QTableWidgetItem(s[i])
                self.table_widget.setItem(row, i, item)
            row += 1