2011-05-06 3 views
0

Я показываю информацию из базы данных с помощью QTableView. Я хотел бы, чтобы поля отображались как выпадающие списки, чтобы пользователь мог легко их модифицировать. Я прочитал много вещей о том, что пользовательские элементы делегата и флаги должны быть установлены в IsUserCheckable, но я не понимаю, как все это должно работать. Я пробовал пару вещей с флагами и роли, но со строгим эффектом, поэтому действительно есть что-то важное, что мне не хватает.PyQt QTableView с QComboBox

Я был бы очень признателен пример рабочего кода этого или, по крайней мере, некоторые хорошие объяснения, если кто-то, что под рукой :)

+0

На самом деле я имею в виду comboBox .. – Johanna

ответ

2

Вот несколько примеров, но если вы хотите что-то более продвинутым см QItemDelegate Class Reference.

import sys 
from PyQt4 import QtGui, QtCore 

class Example(QtGui.QMainWindow): 

    def __init__(self): 
     super(Example, self).__init__() 

     table= QtGui.QTableWidget(5, 5) 
     self.setCentralWidget(table) 
     combobox = QtGui.QComboBox() 
     combobox.addItem('one') 
     combobox.addItem('two')   
     table.setCellWidget(3, 4, combobox) 


if __name__ == '__main__': 
    app = QtGui.QApplication(sys.argv) 
    window = Example() 
    window.setWindowTitle('ComboBox in Table Example') 
    window.resize(600, 400) 
    window.show() 
    sys.exit(app.exec_())