Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 1, 2010 15:01:58

annndrey
От:
Зарегистрирован: 2009-06-11
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQT4 TableView и AbstractModel

Добрый день.
Есть база, оттуда в AbstractModel и Table View извлекаются данные.
Возник вопрос - как сделать ячейки TableView редактируемыми? В частности, после двойного щелчка по ячейке хотелось бы, чтобы значение, содержавшееся в ней, можно было бы исправить.



Офлайн

#2 Июнь 1, 2010 15:55:43

apologize828
От:
Зарегистрирован: 2010-02-13
Сообщения: 223
Репутация: +  1  -
Профиль   Отправить e-mail  

PyQT4 TableView и AbstractModel

Погляди вот этот пример тут все норм только тут 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_()



Офлайн

#3 Июнь 1, 2010 21:54:50

annndrey
От:
Зарегистрирован: 2009-06-11
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQT4 TableView и AbstractModel

Спасибо. + при наследовании от AbstractTableModel необходимо вручную переписывать методы setData и flags, чтобы определить способ, которым будут редактироваться данные и сделать ячейки таблицы редактируемыми



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version