Bonsoir,

Je n'avance plus avec mon code, je sais plus trop comment faire.

Pour résumé:
Le code lance une fenêtre avec un table widget de 6 colonnes rempli de checkbox sauf pour la 1ere colonne et des lignes en fonctions des fichiers pdf que j'ai a traiter.

Dans la 1 ère colonne , ça affiche les noms des fichiers.
Dans la 2 ème, ce sont des checkbox avec comme entête 10 (le nombre a dupliquer)
Dans la 3 ème, ce sont des checkbox avec comme entête 20 (le nombre a dupliquer)
Dans la 4 ème, ce sont des checkbox avec comme entête la ref1
Dans la 5 ème, ce sont des checkbox avec comme entête la ref2
Dans la 6 eme, ce sont des checkbox avec comme entête la ref3

Pour chaque fichier a traiter je n'ai que 2 choix possibles -> le nombre a dupliquer et 1 référence.

Je ne sais pas comment traiter chaque ligne. j'ai essayé avec des listes ça fonctionne un peu , le problème est qu'il faut que je clic correctement ligne par ligne.
J'ai essayé avec un dictionnaire , je stagne, je pense qu'il faut faire un dico / ligne et ajouter tout ça dans une liste mais je sais pas comment faire.

voici le code:

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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
    def table(self):
        #Dossier source:
        source = 'C:/Users/Downloads/pdfAdupliquer/test'		
 
        #Listing des PDF du dossier source:
        global Listpdf
        Listpdf = []
        for files in os.listdir (source):
            if files.endswith('.PDF') or files.endswith('.pdf'):
                Listpdf.append(files)
 
 
        #Config tablewidget:                
        nb_row = (len(Listpdf))
        nb_col = 6
 
        self.ui.tableWidget.setRowCount(nb_row)               
        self.ui.tableWidget.setColumnCount(6)
 
        TableItem = QtWidgets.QTableWidgetItem
 
        item = QTableWidgetItem()
        item.setCheckState(0)
        item.setFlags(QtCore.Qt.ItemIsEnabled |QtCore.Qt.ItemIsUserCheckable) #probleme , on peut cliquer a coté
 
        #Remplissage de la tablewidget        
        row = 0
        for pdf in (Listpdf):
            for i in range(nb_row):
                self.ui.tableWidget.setItem(row,0,TableItem(pdf))
                self.ui.tableWidget.setItem(row,1,TableItem(item))
                self.ui.tableWidget.setItem(row,2,TableItem(item))
                self.ui.tableWidget.setItem(row,3,TableItem(item))
                self.ui.tableWidget.setItem(row,4,TableItem(item))
                self.ui.tableWidget.setItem(row,5,TableItem(item))
            row = (row + 1)
 
        self.ui.tableWidget.itemChanged.connect(self.ajoutCheckbox)
 
        #dico
        global dico
        dico = {}  
 
        global dicolist
        dicolist = []
 
    def ajoutCheckbox(self,item):
 
        #config
        row = item.row()
        col = item.column()
        nb_row = (len(Listpdf))
        nb_col = 6
 
 
        #verification de l'état de la checkbox
        check = item.checkState()
 
        #ajout des checkbox coché dans une liste
        i = 0
        for i in range(nb_row):
 
            #### Ajout -> le choix x10 #### 
            if check == 2 and row == i and col == 1:
                dico["Nom"] = self.ui.tableWidget.item(i, 0).text()
                dico["Quantité"] = self.ui.tableWidget.horizontalHeaderItem(1).text()
                dico["REF"] = ""
                self.ui.tableWidget.item(i, 2).setCheckState(0)     
            #### Ajout -> le choix x20 #### 
            if check == 2 and row == i and col == 2:               
                dico["Nom"] = self.ui.tableWidget.item(i, 0).text()
                dico["Quantité"] = self.ui.tableWidget.horizontalHeaderItem(2).text()
                dico["REF"] = ""                
                self.ui.tableWidget.item(i, 1).setCheckState(0)
 
             #### Ajout ->  REF1) ####   
            if check == 2 and row == i and col == 3:
                dico["REF"] = self.ui.tableWidget.horizontalHeaderItem(3).text()
                self.ui.tableWidget.item(i, 4).setCheckState(0)
                self.ui.tableWidget.item(i, 5).setCheckState(0)
 
              #### Ajout ->  REF2) ####             
            if check == 2 and row == i and col == 4:
                dico["REF"] = self.ui.tableWidget.horizontalHeaderItem(4).text()
                self.ui.tableWidget.item(i, 3).setCheckState(0)
                self.ui.tableWidget.item(i, 5).setCheckState(0)
 
             #### Ajout ->  REF2) ####                  
            if check == 2 and row == i and col == 5:
                dico["REF"] = self.ui.tableWidget.horizontalHeaderItem(5).text()
                self.ui.tableWidget.item(i, 4).setCheckState(0)
                self.ui.tableWidget.item(i, 3).setCheckState(0)

Une piste ou une aide serait la bienvenue , merci.