J'ai vraiment tout essayé pour résoudre mon problème, mais cela ne fonctionne pas. Voici mon code simple pour mettre Comboboxes dans chaque rangée de la table. Cela fonctionne réellement pour setItem(), que j'utilise pour mettre des chaînes dans chaque ligne. Mais cela ne fonctionne pas avec setCellWidget(), que je dois utiliser pour placer la Combobox dans les lignes. C'est comme si setCellWdiget() supprime la combobox après l'avoir placée dans la rangée car elle n'apparaît finalement que dans la toute dernière rangée, ce dont je ne comprends pas pourquoi. Ce serait génial si quelqu'un d'entre vous pouvait m'aider. Merci d'avance!PyQt5 QComboBox dans QTableWidget
Voici le code:
import sys
from PyQt5 import QtWidgets, QtCore
class Window(QtWidgets.QMainWindow):
def __init__(self):
super(Window, self).__init__()
self.setGeometry(50,50,500,500)
self.setWindowTitle('PyQt Tuts')
self.table()
def table(self):
comboBox = QtWidgets.QComboBox()
self.tableWidget = QtWidgets.QTableWidget()
self.tableWidget.setGeometry(QtCore.QRect(220, 100, 411, 392))
self.tableWidget.setColumnCount(2)
self.tableWidget.setRowCount(5)
self.tableWidget.show()
attr = ['one', 'two', 'three', 'four', 'five']
i = 0
for j in attr:
self.tableWidget.setItem(i, 0, QtWidgets.QTableWidgetItem(j))
self.tableWidget.setCellWidget(i, 1, comboBox)
i += 1
def run():
app = QtWidgets.QApplication(sys.argv)
w = Window()
sys.exit(app.exec_())
run()
Avez-vous un exemple de ce que vous voulez dire? – saitam
Ajout d'un exemple – Fabio
+1 Selon le doc: 'Définit le widget donné à afficher dans la cellule dans la ligne et la colonne données, en passant la propriété du widget à la table. – Frodon