Bonjour, je suis débutant dans le domaine du code et notamment dans l'utilisation de pyqt5.
J'ai créer l'interface suivante :

Nom : image1pyqt.png
Affichages : 238
Taille : 17,3 Ko

L'objectif est alors que lorsque l'on clique sur "ajouter une ligne", une nouvelle ligne se crée dans la table avec un QComboBox dans la première case.

Lorsque j'exécute mon code, l'erreur suivante s'affiche :

Nom : image3pyqt.png
Affichages : 216
Taille : 18,5 Ko

Merci d'avance pour votre aide


Voici mon 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
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from math import *
import sys
 
class LoadTable(QTableWidget):
    def __init__(self):
        super().__init__()
 
    def _addrow(self):
        rowcount = self.rowCount()-1
        self.insertRow(rowcount)
        combox_add = QtWidgets.QComboBox(self)
        combox_add.addItems(["A","B","C","D","E","F"]) 
        self.setCellWidget(rowcount, 0, combox_add) 
 
 
class Window(QWidget):
    def __init__(self):
        super().__init__()
 
        Widget.setGeometry(10, 30, 1500, 1000) 
 
        self.label_3 = QLabel("Numéro :",Widget)
        self.label_3.move(int(0.03*1500),int(0.02*1000))
 
        self.lineEdit_1 = QLineEdit(Widget) 
        self.lineEdit_1.setGeometry(100,16,90,28)
 
       #table_1
        self.table_1 = QtWidgets.QTableWidget(Widget)
        self.table_1.setGeometry(int(0.02*1500),int(0.07*1000),int(0.32*1500),int(0.15*1000))
        self.table_1.setColumnCount(1)
        self.table_1.setRowCount(3)
 
 
        horizontal = self.table_1.horizontalHeader()       
        horizontal.setSectionResizeMode(0, QtWidgets.QHeaderView.Stretch)
 
        vertical = self.table_1.verticalHeader()       
        vertical.setSectionResizeMode(0, QtWidgets.QHeaderView.Stretch)
        vertical.setSectionResizeMode(1, QtWidgets.QHeaderView.Stretch)
        vertical.setSectionResizeMode(2, QtWidgets.QHeaderView.Stretch)
 
 
        name_ligne =("Responsable","Date","Heure ",)
        self.table_1.setVerticalHeaderLabels(name_ligne)
        self.table_1.horizontalHeader().hide()
 
 
       #table_2
        self.table_2 = QtWidgets.QTableWidget(Widget)
        self.table_2.setGeometry(int(0.025*1500),int(0.30*1000),int(0.95*1500),int(0.40*1000))
        self.table_2.setColumnCount(10)
        nb_row = 5
        self.table_2.setRowCount(nb_row)
 
        name_colonne =('1','2','3','4','5','6','7','8','9','10')
        self.table_2.setHorizontalHeaderLabels(name_colonne)
 
 
        for i in range(0,nb_row):
                self.combo_1 = QComboBox()
                self.combo_1.addItems(["A","B","C","D","E","F"])
                self.table_2.setCellWidget(i, 0, self.combo_1)
 
 
       #Button
        self.Button_1 = QPushButton("Ajouter une ligne",Widget)
        self.Button_1.setGeometry(int(0.60*1500),int(0.265*1000),int(0.1625*1500),int(0.03*1000))
        self.Button_1.clicked.connect(self.table_2._addrow)
 
 
 
app = QtWidgets.QApplication(sys.argv)
Widget = QtWidgets.QWidget()
widget =Window()
Widget.show()
app.exec_()