Bienvenue sur le forum !

Si vous souhaitez rejoindre la communauté, cliquez sur l'un de ces boutons !

Qt 5 : 5.8.0 - Qt Creator : 4.3.0 - Qt Installer : 2.0.3 - JOM : 1.1.2 - Qt Build suite : 1.7.0 - VS Qt 5 : 2.0.0

Sélection d'éléments dans QTableWidget de Labels

Salut.

je fais un programme sur python avec une tableWiget et je veut pouvoir connaitre la ligne sur la quelle j'ai cliquer j'ai trouver un article ici ou il 'marche' mais je ne connais pas le langage C si quelle qu'un peu me le traduire sa pourrais bien m'aidé. merci!

Réponses

  • Bonjour,

    Avant toute question, une petite présentation est demandée dans "le coin des membres".

    Pour ton problème, j'ai trouvé ce lien :
    http://codeprogress.com/python/libraries/pyqt/showPyQTExample.php?index=434&key=QTableWidgetCellClick
  • présentation faite pour le plaisirs de l'ami ;D

    sinon j'ai regarder le programme que tu a mi et j'ai les QString qui ne son pas défini je doit les changer par quoi ?
  • Bonjour,
    lekev262 said:
    sinon j'ai regarder le programme que tu a mi et j'ai les QString qui ne son pas défini je doit les changer par quoi ?
    Le signal "cellClicked" du "QTableWidget" envoie les numéros de ligne et de colonne comme 2 entiers. Pour les afficher, il suffit de les convertir en str:

    def slotItemClicked(self, item, item2):
    QMessageBox.information(self,
    "QTableWidget Cell Click",
    "Row: " + str(item) + " |Column: " + str(item2))
  • ok mais comment je fait pour que l'est item apprend la ligne et la colonne?
    je veut pouvoir récupérer se qui est a l’intérieur de la cellule pour faire une requête sqlite après ...
  • Pour lire le contenu d'une case, il faut qu'il y ait quelque chose à lire, ce qui n'est pas le cas!

    En effet, un QTableWidget est créé avec des cases absolument vides. Le minimum "standard" est d'y mettre des QTableWidgetItem avec un texte dedans. Mais, bien sûr, on pourrait y mettre n'importe quel autre widget.

    Voilà un exemple pour compléter ton code (j'ai un peu "modernisé" le code d'origine):

    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    # Python 3, PyQt4

    import sys
    import os
    from PyQt4 import QtCore, QtGui

    #############Define MyTableWidget Class Here ############
    class MyTableWidget(QtGui.QTableWidget):

    ##-----------------------------------------
    def __init__(self, parent=None):
    super(MyTableWidget, self).__init__(parent)

    self.setWindowTitle("QTableWidget Cell Click")

    nblig, nbcol = 5, 5
    self.setRowCount(nblig)
    self.setColumnCount(nbcol)

    for i in range(0, nblig):
    for j in range(0, nbcol):
    obj = QtGui.QTableWidgetItem("case %d,%d" % (i, j))
    self.setItem(i, j, obj)

    self.cellClicked.connect(self.slotItemClicked)

    ##-----------------------------------------
    @QtCore.pyqtSlot(int, int)
    def slotItemClicked(self, numligne, numcolonne):
    QtGui.QMessageBox.information(self,
    "QTableWidget Cell Click",
    self.item(numligne, numcolonne).text())

    ##########End of Class Definition ##################
    if __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)
    window = MyTableWidget()
    window.show()
    sys.exit(app.exec_())
  • April 2015 modifié
    question conne je doit l’intégré dans mon programme principale ou l’interface graphique ?
    (si tu me répond l’interface graphique je comptent mieux pourquoi sa marchais pas :mad: )

    edit : je pence que j'ai oublier de dire au début que je suis sur une interface graphique faite en pyqt 5.4 avec python 3.4
  • lekev262 said:
    question conne
    Elle est seulement saugrenue... Dès que tu utilises QtGui: c'est du graphique!

    A noter pour la curiosité, qu'on peut faire des applications en console (sans graphique) en utilisant QtCore (sans QtGui). Mais ça n'a pas beaucoup d'intérêt parce qu'on fait déjà tellement de choses avec le Python de base...
  • tyrtamos j'ai essayer ton code il ne fonctionne pas toute les fonction ne sont pas initialiser et je suis incapable de lui faire

    mais sinon j'ai trouver sur le forum un code qui marche un semblant sur mon code mais je bloque dans la boucle...

    self.Button_tableWidget.clicked.connect(self.Button_tableWidget_Click)

    def Button_tableWidget_Click(self):
    tableList = []
    for i in xrange(0, 4):
    for j in xrange(0,4):
    tableList.append(self.tableWidget.item(i, j))
    k=0
    while k<25:
    tableList[k]=int(tableList[k]) #int bloque
    k+=1
    print tableList
    return tableList
  • lekev262 said:
    j'ai essayer ton code il ne fonctionne pas toute les fonction ne sont pas initialiser
    Là, je suis curieux: lesquelles? Qu'est-ce que ça fait et qu'est-ce que ça affiche quand tu dis que ça ne fonctionne pas?
  • python me dit qu'il ne sont pas attribute et je ne sais pas comment le faire : setRowCount et setColumnCount

    mais le code que j'ai mi il marche ... enfin sans parler du int
  • lekev262 said:
    edit : je pence que j'ai oublier de dire au début que je suis sur une interface graphique faite en pyqt 5.4 avec python 3.4
    Ah oui, ça je ne pouvais pas deviner...

    Voilà le même code converti en PyQt5:

    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    # Python 3, PyQt5

    import sys
    import os
    from PyQt5 import QtCore, QtWidgets

    #############Define MyTableWidget Class Here ############
    class MyTableWidget(QtWidgets.QTableWidget):

    ##-----------------------------------------
    def __init__(self, parent=None):
    super(MyTableWidget, self).__init__(parent)

    self.setWindowTitle("QTableWidget Cell Click")

    nblig, nbcol = 5, 5
    self.setRowCount(nblig)
    self.setColumnCount(nbcol)

    for i in range(0, nblig):
    for j in range(0, nbcol):
    obj = QtWidgets.QTableWidgetItem("case %d,%d" % (i, j))
    self.setItem(i, j, obj)

    self.cellClicked.connect(self.slotItemClicked)

    ##-----------------------------------------
    @QtCore.pyqtSlot(int, int)
    def slotItemClicked(self, numligne, numcolonne):
    QtWidgets.QMessageBox.information(self,
    "QTableWidget Cell Click",
    self.item(numligne, numcolonne).text())

    ##########End of Class Definition ##################
    if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    window = MyTableWidget()
    window.show()
    sys.exit(app.exec_())

  • April 2015 modifié
    setRowCount(nblig) et setColumnCount(nbcol) je devrais prendre les valeur de ceux que j'ai dans ma table au lieu de laisser sa il ne sont pas initier

    sinon au pire je te laisse voir l'interface pour que tu puise voir sur quoi je travaille ^^'

    note : j'ai 4 tables a terme je doit le faire sur 3 de ses tables pour le moment je le teste que sur 1 seul ...

    merci de bien vouloir m'aider pour terminer mon programme :D (c'est la dernier étape de mon programme)

    from PyQt5 import QtCore, QtGui, QtWidgets
    import sqlite3

    class Ui_MangaHystory(object):

    def Button_tableWidget_Click(self): #desactiver pour le moment
    tableList = []
    for i in range(0,10):
    for j in range(0,3):
    tableList.append(self.tableMangalire.item(i, j))
    a=0
    while a<30:
    tableList[a]=int(tableList[a])
    k+=1
    print (tableList)
    return tableList

    @QtCore.pyqtSlot(int, int)
    def slotItemClicked(self, numligne, numcolonne):
    QtWidgets.QMessageBox.information(self,"QTableWidget Cell Click", self.item(numligne, numcolonne).text())

    def setupUi(self, MangaHystory):

    nblig, nbcol = 10, 3
    for i in range(0, nblig):
    for j in range(0, nbcol):
    obj = QtWidgets.QTableWidgetItem("case %d,%d" % (i, j))
    setItem(i, j, obj)
    print(obj)

    connex=sqlite3.connect(":Memory:")
    cur=connex.cursor()

    cur.execute("SELECT count(nom) FROM MangaLire")
    table1 =cur.fetchall()
    table1 =table1[0]
    table1 =table1[0]
    table1 =int(table1)+5
    if table1 <30:
    table1=30

    cur.execute("SELECT count(nom) FROM MangaLu")
    table2 = cur.fetchall()
    table2 =table2[0]
    table2 =table2[0]
    table2 =int(table2)+5
    if table2 <30:
    table2=30

    cur.execute("SELECT count(nom) FROM MangaFini")
    table3 = cur.fetchall()
    table3 =table3[0]
    table3 =table3[0]
    table3 =int(table3)+5

    cur.execute("SELECT count(nom) FROM Annime")
    table4 = cur.fetchall()
    table4 =table4[0]
    table4 =table4[0]
    table4 =int(table4)+5
    if table4 <30:
    table4=30

    MangaHystory.setObjectName("MangaHystory")
    MangaHystory.resize(780, 717)

    self.centralwidget = QtWidgets.QWidget(MangaHystory)
    self.centralwidget.setObjectName("centralwidget")

    self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
    self.gridLayout.setObjectName("gridLayout")

    self.tabWidget = QtWidgets.QTabWidget(self.centralwidget)
    self.tabWidget.setEnabled(True)
    self.tabWidget.setObjectName("tabWidget")

    self.tab = QtWidgets.QWidget()
    self.tab.setEnabled(True)
    self.tab.setObjectName("tab")

    self.label = QtWidgets.QLabel(self.tab)
    self.label.setGeometry(QtCore.QRect(20, 10, 91, 16))
    self.label.setObjectName("label")

    self.label_2 = QtWidgets.QLabel(self.tab)
    self.label_2.setGeometry(QtCore.QRect(380, 10, 141, 16))
    self.label_2.setObjectName("label_2")

    self.pushButtonNext = QtWidgets.QPushButton(self.tab)
    self.pushButtonNext.setGeometry(QtCore.QRect(240, 5, 50, 23))
    self.pushButtonNext.setObjectName("pushButtonNext")

    self.pushButtonPlus = QtWidgets.QPushButton(self.tab)
    self.pushButtonPlus.setGeometry(QtCore.QRect(640, 5, 50, 23))
    self.pushButtonPlus.setObjectName("pushButtonPlus")

    self.ButtonEchhi = QtWidgets.QRadioButton(self.tab)
    self.ButtonEchhi.setGeometry(QtCore.QRect(270, 620, 31, 21))
    self.ButtonEchhi.setObjectName("ButtonEchhi")

    self.pushButton = QtWidgets.QPushButton(self.tab)
    self.pushButton.setGeometry(QtCore.QRect(300, 620, 61, 23))
    self.pushButton.setObjectName("pushButton")

    self.titre = QtWidgets.QLineEdit(self.tab)
    self.titre.setGeometry(QtCore.QRect(70, 620, 191, 20))
    self.titre.setObjectName("titre")

    self.chapitre = QtWidgets.QLineEdit(self.tab)
    self.chapitre.setGeometry(QtCore.QRect(10, 620, 51, 20))
    self.chapitre.setObjectName("chapitre")

    self.tableMangalire = QtWidgets.QTableWidget(self.tab)
    self.tableMangalire.setEnabled(True)
    self.tableMangalire.setGeometry(QtCore.QRect(10, 30, 350, 580))
    self.tableMangalire.setMaximumSize(QtCore.QSize(16777215, 16777165))
    self.tableMangalire.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.AdjustToContents)
    self.tableMangalire.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers)
    self.tableMangalire.setShowGrid(True)
    self.tableMangalire.setWordWrap(True)
    self.tableMangalire.setRowCount(table1)
    self.tableMangalire.setColumnCount(3)
    self.tableMangalire.setObjectName("tableMangalire")
    item = QtWidgets.QTableWidgetItem()
    self.tableMangalire.setHorizontalHeaderItem(0, item)
    item = QtWidgets.QTableWidgetItem()
    self.tableMangalire.setHorizontalHeaderItem(1, item)
    item = QtWidgets.QTableWidgetItem()
    self.tableMangalire.setHorizontalHeaderItem(2, item)
    self.tableMangalire.horizontalHeader().setDefaultSectionSize(120)
    self.tableMangalire.horizontalHeader().setStretchLastSection(True)
    self.tableMangalire.verticalHeader().setDefaultSectionSize(20)
    #self.tableMangalire.clicked.connect(self.Button_tableWidget_Click)
    self.tableMangalire.clicked.connect(self.slotItemClicked)

    self.tableMangalu = QtWidgets.QTableWidget(self.tab)
    self.tableMangalu.setEnabled(True)
    self.tableMangalu.setGeometry(QtCore.QRect(370, 30, 380, 611))
    self.tableMangalu.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.AdjustToContents)
    self.tableMangalu.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers)
    self.tableMangalu.setRowCount(table2)
    self.tableMangalu.setColumnCount(3)
    self.tableMangalu.setObjectName("tableMangalu")
    item = QtWidgets.QTableWidgetItem()
    self.tableMangalu.setHorizontalHeaderItem(0, item)
    item = QtWidgets.QTableWidgetItem()
    self.tableMangalu.setHorizontalHeaderItem(1, item)
    item = QtWidgets.QTableWidgetItem()
    self.tableMangalu.setHorizontalHeaderItem(2, item)
    self.tableMangalu.horizontalHeader().setDefaultSectionSize(140)
    self.tableMangalu.horizontalHeader().setStretchLastSection(True)
    self.tableMangalu.verticalHeader().setDefaultSectionSize(20)


    self.pushButtonFini = QtWidgets.QPushButton(self.tab)
    self.pushButtonFini.setGeometry(QtCore.QRect(700, 5, 50, 23))
    self.pushButtonFini.setObjectName("pushButtonFini")

    self.pushButtonTerminer = QtWidgets.QPushButton(self.tab)
    self.pushButtonTerminer.setGeometry(QtCore.QRect(300, 5, 50, 23))
    self.pushButtonTerminer.setObjectName("pushButtonTerminer")

    self.MangaNext = QtWidgets.QLineEdit(self.tab)
    self.MangaNext.setGeometry(QtCore.QRect(90, 5, 141, 20))
    self.MangaNext.setObjectName("MangaNext")

    self.tabWidget.addTab(self.tab, "")
    self.tab_2 = QtWidgets.QWidget()
    self.tab_2.setObjectName("tab_2")

    self.episode = QtWidgets.QLineEdit(self.tab_2)
    self.episode.setGeometry(QtCore.QRect(410, 620, 51, 20))
    self.episode.setObjectName("episode")

    self.label_3 = QtWidgets.QLabel(self.tab_2)
    self.label_3.setGeometry(QtCore.QRect(20, 10, 91, 16))
    self.label_3.setObjectName("label_3")

    self.pushButton2 = QtWidgets.QPushButton(self.tab_2)
    self.pushButton2.setGeometry(QtCore.QRect(690, 620, 60, 23))
    self.pushButton2.setObjectName("pushButton2")

    self.titre2 = QtWidgets.QLineEdit(self.tab_2)
    self.titre2.setGeometry(QtCore.QRect(470, 620, 181, 20))
    self.titre2.setObjectName("titre2")

    self.ButtonEchhi2 = QtWidgets.QRadioButton(self.tab_2)
    self.ButtonEchhi2.setGeometry(QtCore.QRect(660, 620, 31, 21))
    self.ButtonEchhi2.setObjectName("ButtonEchhi2")

    self.pushButtonPlus2 = QtWidgets.QPushButton(self.tab_2)
    self.pushButtonPlus2.setGeometry(QtCore.QRect(390, 460, 51, 23))
    self.pushButtonPlus2.setObjectName("pushButtonPlus2")

    self.tableCalcul = QtWidgets.QTableWidget(self.tab_2)
    self.tableCalcul.setEnabled(False)
    self.tableCalcul.setGeometry(QtCore.QRect(470, 450, 281, 160))
    self.tableCalcul.setToolTipDuration(0)
    self.tableCalcul.setObjectName("tableCalcul")
    self.tableCalcul.setColumnCount(4)
    self.tableCalcul.setRowCount(7)
    item = QtWidgets.QTableWidgetItem()
    self.tableCalcul.setVerticalHeaderItem(0, item)
    item = QtWidgets.QTableWidgetItem()
    self.tableCalcul.setVerticalHeaderItem(1, item)
    item = QtWidgets.QTableWidgetItem()
    self.tableCalcul.setVerticalHeaderItem(2, item)
    item = QtWidgets.QTableWidgetItem()
    self.tableCalcul.setVerticalHeaderItem(3, item)
    item = QtWidgets.QTableWidgetItem()
    self.tableCalcul.setVerticalHeaderItem(4, item)
    item = QtWidgets.QTableWidgetItem()
    self.tableCalcul.setVerticalHeaderItem(5, item)
    item = QtWidgets.QTableWidgetItem()
    self.tableCalcul.setVerticalHeaderItem(6, item)
    item = QtWidgets.QTableWidgetItem()
    self.tableCalcul.setHorizontalHeaderItem(0, item)
    item = QtWidgets.QTableWidgetItem()
    self.tableCalcul.setHorizontalHeaderItem(1, item)
    item = QtWidgets.QTableWidgetItem()
    self.tableCalcul.setHorizontalHeaderItem(2, item)
    item = QtWidgets.QTableWidgetItem()
    self.tableCalcul.setHorizontalHeaderItem(3, item)
    self.tableCalcul.horizontalHeader().setDefaultSectionSize(60)
    self.tableCalcul.verticalHeader().setDefaultSectionSize(19)

    self.tableAnnime = QtWidgets.QTableWidget(self.tab_2)
    self.tableAnnime.setEnabled(True)
    self.tableAnnime.setGeometry(QtCore.QRect(10, 30, 350, 610))
    self.tableAnnime.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.AdjustToContents)
    self.tableAnnime.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers)
    self.tableAnnime.setRowCount(table4)
    self.tableAnnime.setColumnCount(3)
    self.tableAnnime.setObjectName("tableAnnime")
    item = QtWidgets.QTableWidgetItem()
    self.tableAnnime.setHorizontalHeaderItem(0, item)
    item = QtWidgets.QTableWidgetItem()
    self.tableAnnime.setHorizontalHeaderItem(1, item)
    item = QtWidgets.QTableWidgetItem()
    self.tableAnnime.setHorizontalHeaderItem(2, item)
    self.tableAnnime.horizontalHeader().setDefaultSectionSize(140)
    self.tableAnnime.horizontalHeader().setStretchLastSection(True)
    self.tableAnnime.verticalHeader().setDefaultSectionSize(20)


    self.pushButtonFini2 = QtWidgets.QPushButton(self.tab_2)
    self.pushButtonFini2.setGeometry(QtCore.QRect(390, 490, 51, 23))
    self.pushButtonFini2.setObjectName("pushButtonFini2")

    self.tableFini = QtWidgets.QTableWidget(self.tab_2)
    self.tableFini.setEnabled(True)
    self.tableFini.setGeometry(QtCore.QRect(370, 30, 380, 410))
    self.tableFini.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.AdjustToContents)
    self.tableFini.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers)
    self.tableFini.setRowCount(table3)
    self.tableFini.setColumnCount(3)
    self.tableFini.setObjectName("tableFini")
    item = QtWidgets.QTableWidgetItem()
    font = QtGui.QFont()
    font.setKerning(True)
    item.setFont(font)
    self.tableFini.setHorizontalHeaderItem(0, item)
    item = QtWidgets.QTableWidgetItem()
    self.tableFini.setHorizontalHeaderItem(1, item)
    item = QtWidgets.QTableWidgetItem()
    self.tableFini.setHorizontalHeaderItem(2, item)
    self.tableFini.horizontalHeader().setDefaultSectionSize(140)
    self.tableFini.horizontalHeader().setStretchLastSection(True)
    self.tableFini.verticalHeader().setDefaultSectionSize(20)


    self.label_4 = QtWidgets.QLabel(self.tab_2)
    self.label_4.setGeometry(QtCore.QRect(390, 10, 91, 16))
    self.label_4.setObjectName("label_4")

    self.AnnimeNext = QtWidgets.QLineEdit(self.tab_2)
    self.AnnimeNext.setGeometry(QtCore.QRect(120, 5, 251, 20))
    self.AnnimeNext.setObjectName("AnnimeNext")

    self.tabWidget.addTab(self.tab_2, "")
    self.gridLayout.addWidget(self.tabWidget, 0, 0, 1, 1)
    MangaHystory.setCentralWidget(self.centralwidget)
    self.statusbar = QtWidgets.QStatusBar(MangaHystory)
    self.statusbar.setObjectName("statusbar")
    MangaHystory.setStatusBar(self.statusbar)

    self.retranslateUi(MangaHystory)
    self.tabWidget.setCurrentIndex(0)
    QtCore.QMetaObject.connectSlotsByName(MangaHystory)

    def retranslateUi(self, MangaHystory):
    _translate = QtCore.QCoreApplication.translate
    MangaHystory.setWindowTitle(_translate("MangaHystory", "Manga hystory"))
    self.label.setText(_translate("MangaHystory", "Mange a lire"))
    self.label_2.setText(_translate("MangaHystory", "Mange en cour de lecture"))
    self.pushButtonNext.setText(_translate("MangaHystory", "==>"))
    self.pushButtonPlus.setText(_translate("MangaHystory", "+ 1"))
    self.ButtonEchhi.setText(_translate("MangaHystory", "E"))
    self.pushButton.setText(_translate("MangaHystory", "VALIDER"))
    self.titre.setText(_translate("MangaHystory", "titre"))
    self.chapitre.setText(_translate("MangaHystory", "chapitre"))
    self.tableMangalire.setSortingEnabled(False)
    item = self.tableMangalire.horizontalHeaderItem(0)
    item.setText(_translate("MangaHystory", "ch"))
    item = self.tableMangalire.horizontalHeaderItem(1)
    item.setText(_translate("MangaHystory", "nom"))
    item = self.tableMangalire.horizontalHeaderItem(2)
    item.setText(_translate("MangaHystory", "E"))
    self.tableMangalu.setSortingEnabled(False)
    item = self.tableMangalu.horizontalHeaderItem(0)
    item.setText(_translate("MangaHystory", "ch"))
    item = self.tableMangalu.horizontalHeaderItem(1)
    item.setText(_translate("MangaHystory", "nom"))
    item = self.tableMangalu.horizontalHeaderItem(2)
    item.setText(_translate("MangaHystory", "E"))
    self.pushButtonFini.setText(_translate("MangaHystory", "Fini"))
    self.pushButtonTerminer.setText(_translate("MangaHystory", "Terminer"))
    self.MangaNext.setText(_translate("MangaHystory", "manga lu ou terminer"))
    self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("MangaHystory", "Manga"))
    self.episode.setText(_translate("MangaHystory", "episode"))
    self.label_3.setText(_translate("MangaHystory", "Annime"))
    self.pushButton2.setText(_translate("MangaHystory", "VALIDER"))
    self.titre2.setText(_translate("MangaHystory", "titre"))
    self.ButtonEchhi2.setText(_translate("MangaHystory", "E"))
    self.pushButtonPlus2.setText(_translate("MangaHystory", "+ 1"))
    item = self.tableCalcul.verticalHeaderItem(3)
    item.setText(_translate("MangaHystory", "jour"))
    item = self.tableCalcul.verticalHeaderItem(4)
    item.setText(_translate("MangaHystory", "heur"))
    item = self.tableCalcul.verticalHeaderItem(5)
    item.setText(_translate("MangaHystory", "min"))
    item = self.tableCalcul.verticalHeaderItem(6)
    item.setText(_translate("MangaHystory", "serie"))
    item = self.tableCalcul.horizontalHeaderItem(0)
    item.setText(_translate("MangaHystory", "a voir"))
    item = self.tableCalcul.horizontalHeaderItem(1)
    item.setText(_translate("MangaHystory", "+1"))
    item = self.tableCalcul.horizontalHeaderItem(2)
    item.setText(_translate("MangaHystory", "vu"))
    item = self.tableCalcul.horizontalHeaderItem(3)
    item.setText(_translate("MangaHystory", "total"))
    self.tableAnnime.setSortingEnabled(False)
    item = self.tableAnnime.horizontalHeaderItem(0)
    item.setText(_translate("MangaHystory", "ep"))
    item = self.tableAnnime.horizontalHeaderItem(1)
    item.setText(_translate("MangaHystory", "nom"))
    item = self.tableAnnime.horizontalHeaderItem(2)
    item.setText(_translate("MangaHystory", "E"))
    self.pushButtonFini2.setText(_translate("MangaHystory", "Fini"))
    self.tableFini.setSortingEnabled(False)
    item = self.tableFini.horizontalHeaderItem(0)
    item.setText(_translate("MangaHystory", "ch ou ep"))
    item = self.tableFini.horizontalHeaderItem(1)
    item.setText(_translate("MangaHystory", "nom"))
    item = self.tableFini.horizontalHeaderItem(2)
    item.setText(_translate("MangaHystory", "type"))
    self.label_4.setText(_translate("MangaHystory", "Manga terminer"))
    self.AnnimeNext.setText(_translate("MangaHystory", "anime fini .."))
    self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("MangaHystory", "Annime"))


    if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    MangaHystory = QtWidgets.QMainWindow()
    ui = Ui_MangaHystory()
    ui.setupUi(MangaHystory)
    MangaHystory.show()
    sys.exit(app.exec_())

  • Bonjour,

    J'ai essayé d'éplucher ton code, mais ce n'est vraiment pas facile de comprendre près de 400 lignes de code sans pouvoir l'exécuter (pas de base de données).

    Il y a de toute façon un problème ligne 28 avec setItem qui devrait être une méthode d'un QTableWidget, mais à ce stade, il n'y en a pas.

    J'ai une remarque plus générale: ton code ressemble à celui qui vient de QtDesigner + pyuic5 qui aurait été modifié ensuite à la main. Si c'est le cas, c'est une très mauvaise idée de travailler dessus, parce que la moindre modification de dessin sur le designer fera disparaître tout le code ajouté. Quand on travaille avec Designer, on se contente d'importer ce fichier et d'ajouter ce qui manque pour le programme. Ce serait d'ailleurs beaucoup plus facile à débugger, parce que ce programme serait beaucoup plus court. Il y a aussi d'autres avantages: par exemple, utiliser avec surcharge les méthodes des widgets utilisés. Si tu ne sais pas faire, je peux t'y aider.
  • April 2015 modifié
    oui c du Qt Designer et il y a peu de chance que je me plante j'ai compris ou agisse toute les modif que fait le logicielle si je fais de gros changement (je lais deja fait) je l’antistress sous un autre nom et je fais une fusion des Widget modifier surtout les placement et les nom des chant.

    pour les donner c'est vrai que tu ne peu pas le tester avec le graphique il te faut le code principal.. .

    sinon pour le setItem attache le a tableMangalire c la premier table ou j'ai l'importation du def sur l'interface c'est le premier tableaux que tu voit.

    si tu ne comptent pas autre chose fait moi savoir ;)

    sinon j'ai fait un test de self.tableMangalire.setItem(i, j, obj) et sur l'interface sa me donne sa
    image

    mais il me donne un message d'erreur quant je clique sur une case "TypeError: slotItemClicked() missing 1 required positional argument: 'item2'"
  • Regarde ton code: le signal cellClicked envoie 2 entiers: le numéro de ligne et le numéro de colonne, et il n'y a aucune raison qu'il oublie le 2ème de temps en temps...

    La méthode slotItemClicked est donc appelée par quelque chose d'autre?
  • je l’antistress sous un autre nom et je fais une fusion des Widget modifier surtout les placement et les nom des chant.
    si tu ne comptent pas autre chose fait moi savoir
    sa me donne sa
    lekev262, il faut te lire à haute voix pour comprendre ce que tu écris. Au bout de 2 lignes ça ne m'amuse plus. Pourrais-tu essayer d'améliorer ton expression écrite ?
  • PapaJaac said:
    je l’antistress sous un autre nom et je fais une fusion des Widget modifier surtout les placement et les nom des chant.
    lekev262, il faut te lire à haute voix pour comprendre ce que tu écris. Au bout de 2 lignes ça ne m'amuse plus. Pourrais-tu essayer d'améliorer ton expression écrite ?
    pour corriger je voulais pas mettre antistress (pas fait gaffe au correcteur) je voulais dire sauvegarde
    je suis dsl, je sais que j' écris un peu mal quant je vais asse vite puis je ne me relire pas souvent, je l’avoue ...
    tyrtamos said:

    Regarde ton code: le signal cellClicked envoie 2 entiers: le numéro de ligne et le numéro de colonne, et il n'y a aucune raison qu'il oublie le 2ème de temps en temps...
    j'ai regarder il y a aucune raison que 'j' ne soit pas initialiser je fais un print avent de passer au slotItemClicked et j’obtiens bien une valeur mais le nombre de colonne totale le problème ne viendrait pas du fait qu'il n’arrive pas a reconnait quelle est la colonne ? dans quelle cas je doit mi prendre ? j'ai ésaillé de chercher hier et je n'ai pas trouver ou pourrais venir le problème entre les boules for ou le slotItemClicked.
Connectez-vous ou Inscrivez-vous pour répondre.