Pyside / Pyqt QStyleditemDelegate Elenco nella tabella
Domanda
Sto cercando di creare una tabella di elenchi in Python con Qt (Pyside/Pyqt - Notta no) e le mie liste sono schiacciate nelle celle del tavolo.
C'è un modo per convincere i delegati dell'elenco a "far uscire" le loro celle? Ho allegato un semplice frammento di codice: sostituire PySide
insieme a PyQt4
A seconda delle tue preferenze
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_())
Soluzione
Quindi la risposta è usare
QComboBox
piuttosto che
QListWidget
Quindi la riga 6 diventa
editor = QtGui.QComboBox(parent)
E tutto è giusto con il mondo. Spero che questo aiuti qualcuno ...
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow