crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Делегат для конкретной ячейки в QTableView
JuryS1806
  опции профиля:
сообщение 21.1.2011, 2:09
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 93
Регистрация: 21.10.2009
Из: Нижний Новгород
Пользователь №: 1168

Спасибо сказали: 9 раз(а)




Репутация:   0  


Всем привет !

Здорово работать с QTableView при помощи делегатов, но вот такая незадача, например, я могу установить делегат для столбца или строки таблицы, а как присвить его конкретному индексу.

В MS Access это делается очень легко и непринужденно, а здесь я так понял можно только через setIndexWidget и созданный Widget подцеплять к четырем слотам, вместо простоейшего использования ItemDelegate.

В справке нашел:
Note: If a delegate has been assigned to both a row and a column, the row delegate (i.e., this delegate) will take presedence and manage the intersecting cell index.
т.е. как бы если назначить делегат для строки и столбца, будет работать в ячейки пересечения, но почему то он работает и по гориз и по верт.

Спасибо заранее за помощь !

P.S.
Any existing row delegate for row will be removed, but not deleted. QAbstractItemView does not take ownership of delegate.
т.е. опять memory leaks ?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
igor_bogomolov
  опции профиля:
сообщение 22.1.2011, 0:22
Сообщение #2


Профессионал
*****

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

Спасибо сказали: 235 раз(а)




Репутация:   29  


Цитата(JuryS1806 @ 22.1.2011, 0:11) *
Нет, тоже не вариант. Если до этого какой-нибудь ячейке был назначен делегат, он перепишется новым.
Это ограничение легко обходится. Не нужно относиться к коду так буквально, я всего лишь хотел продемонстрировать идею.
Цитата(JuryS1806 @ 22.1.2011, 0:11) *
я так понял что нужно создать универсальный делегат для строки со всеми необходимыми вариантами???
Как ты его будешь использовать, это не важно. Хочешь для строки выставляй, хочешь для столбца, да хоть для всей таблици целиком. Способ редактирования будет такой как ты укажешь в UserRole. Главное не забывать его задавать для каждой ячейки.
Цитата(JuryS1806 @ 22.1.2011, 0:11) *
Это очень много кода... А может быть все таки более простые и красивые решения ?
Да, что поделаешь, кода действительно чуть больше чем для обычного делегата. Зависит от того, сколько способов для редактирования ты хочешь иметь. Другого способа задавать делегаты для отдельной ячейки я не знаю.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- JuryS1806   Делегат для конкретной ячейки в QTableView   21.1.2011, 2:09
- - igor_bogomolov   Цитата(JuryS1806 @ 21.1.2011, 2:09) Note:...   21.1.2011, 8:53
|- - JuryS1806   Спасибо за ответ. Я вот вчера к утру додумал к сле...   21.1.2011, 23:44
|- - JuryS1806   Нет, тоже не вариант. Если до этого какой-нибудь я...   22.1.2011, 0:11
- - igor_bogomolov   Можно конечно и так, каждый сам для себя решает, в...   22.1.2011, 0:10
- - igor_bogomolov   Цитата(JuryS1806 @ 22.1.2011, 0:11) Нет, ...   22.1.2011, 0:22
|- - JuryS1806   И на том спасибо. Просто боюсь костыли приделывать...   22.1.2011, 0:29
- - igor_bogomolov   Цитата(JuryS1806 @ 22.1.2011, 0:29) Прост...   22.1.2011, 0:36
|- - JuryS1806   Да. это и вправду лучшее решение сейчас. только до...   22.1.2011, 1:04
- - igor_bogomolov   Цитата(JuryS1806 @ 22.1.2011, 1:04) Я пра...   22.1.2011, 1:11
|- - JuryS1806   вот и простейший делегат от тролей: QSqlRelational...   22.1.2011, 1:21
- - igor_bogomolov   Цитата(JuryS1806 @ 22.1.2011, 1:21) Вообщ...   22.1.2011, 1:33
|- - JuryS1806   Вообщем, приблизительно сделал так: delegate.h : ...   30.1.2011, 17:07
|- - JuryS1806   Еще массу наработок сделал. Если кому нужно, пишит...   1.2.2011, 2:28
- - dragomir   Заранее извиняюсь. Надо срочно использовать описа...   20.11.2011, 22:03


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 18.1.2025, 3:05