Форум сайта python.su
Добрый день.
Есть база, оттуда в AbstractModel и Table View извлекаются данные.
Возник вопрос - как сделать ячейки TableView редактируемыми? В частности, после двойного щелчка по ячейке хотелось бы, чтобы значение, содержавшееся в ней, можно было бы исправить.
Офлайн
Погляди вот этот пример тут все норм только тут QStandardItemModel.
тут фишка в одной строчке:
table.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers)если ее написать то редактирование не доступно, если закоментить то редактирование доступно
#!usr/bin/python
#-*- coding: utf-8 -*-
import sys
from PyQt4 import QtGui,QtCore
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
phonebook = {"Олег": "Красноярск",
"Вася": "Воронеж",
"Петя": "Москва"}
model =QtGui.QStandardItemModel(3,2)
row = 0
for name, address in phonebook.items():
model.setData(model.index(row, 0), name)
model.setData(model.index(row, 1), address)
row += 1
model.setHeaderData(0, QtCore.Qt.Horizontal, "Имя")
model.setHeaderData(1, QtCore.Qt.Horizontal, "Адрес")
table = QtGui.QTableView()
table.setModel(model)
table.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers)
table.show()
app.exec_()
Офлайн
Спасибо. + при наследовании от AbstractTableModel необходимо вручную переписывать методы setData и flags, чтобы определить способ, которым будут редактироваться данные и сделать ячейки таблицы редактируемыми
Офлайн