Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 24, 2010 17:23:13

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

QWidget как редактор для QTableView

приветствую,

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

спасибо,
-вадим



Офлайн

#2 Ноя. 25, 2010 21:09:11

villager
От:
Зарегистрирован: 2008-11-04
Сообщения: 111
Репутация: +  0  -
Профиль   Отправить e-mail  

QWidget как редактор для QTableView

как организовать вызов:
QToolBar c QAction рядом с QTableView
QTableView.doubleClicked.connect

отдельная форма - QDialog

передача данных - QTableView.model().setData
или напрямую в БД с последующим QTableView.reset



Офлайн

#3 Ноя. 26, 2010 20:25:07

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

QWidget как редактор для QTableView

хотя у меня были подозрения, но я все в степях делегатов копал… теперь все ясно - спасиб!



Офлайн

#4 Апрель 11, 2011 08:16:56

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

QWidget как редактор для QTableView

реализовую выше изложенное, а именно:

villager
передача данных - QTableView.model().setData
из родного файла такой код выполняется успешно:

self.emsTableModel.setData((self.emsTableModel.index(0, 2)), QtCore.QVariant(111))
но вот этот же код как из файла модуля не дает результат (равно как и ошибку - просто не вставляет данные):

import trianon
...
trianon.emsTableModel().setData((trianon.emsTableModel().index(0, 2)), QtCore.QVariant(111))
в чем прикол?



Офлайн

#5 Апрель 12, 2011 21:51:10

villager
От:
Зарегистрирован: 2008-11-04
Сообщения: 111
Репутация: +  0  -
Профиль   Отправить e-mail  

QWidget как редактор для QTableView

villager
или напрямую в БД с последующим QTableView.reset
я как раз так делаю, дает возможность дополнительный контроль введенных данных проводить (и лог писать заоодно)

в какой системе делается?
у меня например:
под виндой один фрагмент работает, а под линуксом - говорит, что нельзя вызывать приватный метод



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version