2011-01-31 58 views
2

我想創建一個列表與Python的Python(PySide/PyQt - 事項不),我的列表被壓扁到表單元格。PySide/PyQt QStyledItemDelegate列表中

有沒有辦法讓列表代表「彈出」他們的單元格?我已經附上簡單的代碼片段 - 與PyQt4取代PySide根據自己的喜好

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_()) 

回答

2

所以答案是使用

QComboBox 

而不是

QListWidget 

所以行變成6

editor = QtGui.QComboBox(parent) 

和所有與世界的權利。希望這可以幫助別人...

相關問題