PyQt QTableView с QComboBox - PullRequest
       18

PyQt QTableView с QComboBox

0 голосов
/ 06 мая 2011

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

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

1 Ответ

2 голосов
/ 05 марта 2012

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

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