Помогите реализовать QTreeView (Модель/Представление) |
Здравствуйте, гость ( Вход | Регистрация )
Помогите реализовать QTreeView (Модель/Представление) |
dexter_man |
12.5.2008, 21:13
Сообщение
#11
|
Студент Группа: Новичок Сообщений: 16 Регистрация: 12.5.2008 Пользователь №: 173 Спасибо сказали: 0 раз(а) Репутация: 0 |
Если делать модель QAbstractItemModel то обязательно переопределять все функции?
Спасиба посмотрел ща попробую разобраться с кодом!!! |
|
|
Litkevich Yuriy |
12.5.2008, 21:21
Сообщение
#12
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
---
Представление, напримере табличного, можно так вообразить: Натянута сетка, как волейбольная, в ней ячейки, в ячейке отображаются цифирки, буковки или вовсе картинки. Если надо поменять в ячейке содержимое, т.е. человек в ячейку ручками полез, туда быстренько подсовывается устройство - делегат. Оно занает как менять, в первы момент делегат узнает у модели данные, передав ей координаты - модельный индекс, затем показывает себя с этими данными, и человек уже работает с делегатом, потом когда фокус от я чеки уходит, делегат отправляет данные в модель, опять же с помощью координат - модельного индекса. А сам убегает, на его месте представление показывает то что сейчас в модели. Если делать модель QAbstractItemModel то обязательно переопределять все функции? ненадо тебе модель делать, тебе надо делегат делать, который, когда будет убегать из сетки, помимо того что данные в модель запишит, еще и подветок нужное кол-во в модели создаст, и все убежит, а когда убежит представление у модели спросит "как там с данными?", а модель ему свежачек подкинет. |
|
|
dexter_man |
12.5.2008, 21:29
Сообщение
#13
|
Студент Группа: Новичок Сообщений: 16 Регистрация: 12.5.2008 Пользователь №: 173 Спасибо сказали: 0 раз(а) Репутация: 0 |
Пасиба!!! Ща буду пробывать!
Вы вдохнули в меня оптимизм!!! |
|
|
dexter_man |
13.5.2008, 13:14
Сообщение
#14
|
Студент Группа: Новичок Сообщений: 16 Регистрация: 12.5.2008 Пользователь №: 173 Спасибо сказали: 0 раз(а) Репутация: 0 |
А как прописать в делегате:
|
|
|
Litkevich Yuriy |
13.5.2008, 13:51
Сообщение
#15
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Вообщем в представлении в каждой ячеку по делегату, если пользователь выбрал какое-то место, то его координаты (модельный индекс ) передаются в делегат:
в представлении ты для конкретного столбца можешь установить конкретный делегат, поэтому в делегате не надо анализировать "если столбец..." Просто сделай делегат для такого столбца. т.е. ты сделал делегат который будет подветви добавлять к текущей ветви, и назвал его AddDelgate, тогда код его использования выглядит так:
|
|
|
dexter_man |
13.5.2008, 13:53
Сообщение
#16
|
Студент Группа: Новичок Сообщений: 16 Регистрация: 12.5.2008 Пользователь №: 173 Спасибо сказали: 0 раз(а) Репутация: 0 |
Цитата Вообщем в представлении в каждой ячеку по делегату, если пользователь выбрал какое-то место, то его координаты (модельный индекс ) передаются в делегат: Это я уже понял Я просто хотел сделать по другому Я все понял, ща буду делать Сообщение отредактировал dexter_man - 13.5.2008, 13:55 |
|
|
dexter_man |
13.5.2008, 14:27
Сообщение
#17
|
Студент Группа: Новичок Сообщений: 16 Регистрация: 12.5.2008 Пользователь №: 173 Спасибо сказали: 0 раз(а) Репутация: 0 |
а в какую функию вставить connect(spinBox, SIGNAL(valueChanged(int)), SLOT(add_column(int)))?
|
|
|
AD |
13.5.2008, 14:47
Сообщение
#18
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
|
|
|
dexter_man |
13.5.2008, 15:06
Сообщение
#19
|
Студент Группа: Новичок Сообщений: 16 Регистрация: 12.5.2008 Пользователь №: 173 Спасибо сказали: 0 раз(а) Репутация: 0 |
Мне нужно в делегате указать что если пользователь выбирает на против здания количество комнат, чтоб добавлялось звдвнное количество строк в подтаблицу.
Вот я не знаю каким образом реализовать этот слок, ведь в него должны передаваться в качестве параметров: модель и индекс.
И в какую функцию делегата его запихнуть? Сообщение отредактировал dexter_man - 13.5.2008, 15:09 |
|
|
Litkevich Yuriy |
13.5.2008, 17:16
Сообщение
#20
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
я думаю сигналы со слотами тут лишние, можно в функции делегата setModelData() это реализовать.
|
|
|
Текстовая версия | Сейчас: 5.12.2024, 7:36 |