PySide / PyQt liste QStyledItemDelegate dans le tableau
Question
Je suis en train de créer une table de listes en Python avec Qt. (PySide / PyQt - questions non) et mes listes sont écrasées dans les cellules de table
Y at-il un moyen d'obtenir les délégués de la liste pour « sortir » de leurs cellules? J'ai joint d'un simple extrait de code - remplacer PySide
avec PyQt4
en fonction de vos préférences
from PySide import QtCore, QtGui
class ListDelegate(QtGui.QStyledItemDelegate):
def createEditor(self, parent, option, index):
editor = QtGui.QListWidget(parent)
for i in range( 12 ):
editor.addItem('list item %d' % i)
return editor
if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
model = QtGui.QStandardItemModel(2, 2)
tableView = QtGui.QTableView()
delegate = ListDelegate()
tableView.setItemDelegate(delegate)
tableView.setModel(model)
for row in range(2):
for column in range(2):
item = QtGui.QStandardItem( 'None' )
model.setItem(row, column, item)
tableView.setWindowTitle('example')
tableView.show()
sys.exit(app.exec_())
La solution
La réponse est d'utiliser
QComboBox
plutôt que
QListWidget
si la ligne 6 devient
editor = QtGui.QComboBox(parent)
et tout est bien dans le monde. Espérons que cela aide quelqu'un ...
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow