Название: Не отображаются итемы в кастомной моделе. Отправлено: magog от Февраль 16, 2012, 14:29 итем: http://paste.pocoo.org/show/551849/
модель: http://paste.pocoo.org/show/551850/ минимал репродьюс: http://dl.dropbox.com/u/25249431/test.zip Хидер отображается. Итем добавляется и по дебагам это отслеживается. Но в модели не показывается. Название: Re: Не отображаются итемы в кастомной моделе. Отправлено: Bepec от Февраль 16, 2012, 14:32 Кхм. Сразу 2 куска кода. Интересно, кто нибудь их посмотрит?
Название: Re: Не отображаются итемы в кастомной моделе. Отправлено: magog от Февраль 16, 2012, 14:33 Я тут первый раз спрашиваю - пока не в курсе как тут и на что реагируют
Название: Re: Не отображаются итемы в кастомной моделе. Отправлено: Bepec от Февраль 16, 2012, 14:41 Уважаемый магог, не объясните мне сакральный смысл кода?
Код: TreeModel::TreeModel (const QStringList& headers, QObject *parent) ??? я просто озадачен, если не сказать более. Ведь можно и так: Код: TreeModel::TreeModel (const QStringList& headers, QObject *parent) update: вот про это Код: std::for_each (headers.begin (), headers.end (), Название: Re: Не отображаются итемы в кастомной моделе. Отправлено: sudo от Февраль 16, 2012, 14:42 Кто будет компилить, собирается только под 4.8
Название: Re: Не отображаются итемы в кастомной моделе. Отправлено: Bepec от Февраль 16, 2012, 14:43 Печально как то...
Название: Re: Не отображаются итемы в кастомной моделе. Отправлено: Пантер от Февраль 16, 2012, 14:43 Bepec, это с++11.
Название: Re: Не отображаются итемы в кастомной моделе. Отправлено: magog от Февраль 16, 2012, 14:45 Я не нашел в доках оператора для добавления в вектор вариантов стринглиста.
Название: Re: Не отображаются итемы в кастомной моделе. Отправлено: magog от Февраль 16, 2012, 14:46 И как я и предполагал - оно не работает тогда. Хоть и компилируется
Название: Re: Не отображаются итемы в кастомной моделе. Отправлено: sudo от Февраль 16, 2012, 14:49 Если честно, разбираться не очень хочется. Потому что много букв и мягко говоря непривычный стиль кода. Но! Метод data() не вызывается от слова совсем (исключение - уменьшить окно до появления прокрутки и ей подвигать)
Название: Re: Не отображаются итемы в кастомной моделе. Отправлено: Bepec от Февраль 16, 2012, 14:50 Работает оно.
Но раз тут С++11 + Qt8 пошёл, то это жесть какая то ^.^ PS работает и компилится для Qt 4.7.2 ;) Название: Re: Не отображаются итемы в кастомной моделе. Отправлено: sudo от Февраль 16, 2012, 14:52 У меня системный 4.7.4 отказался собирать.
нагнал, надо было кнопочку понажимать :) Название: Re: Не отображаются итемы в кастомной моделе. Отправлено: magog от Февраль 16, 2012, 14:54 Там лямбда используется в качестве функтора.
Название: Re: Не отображаются итемы в кастомной моделе. Отправлено: Bepec от Февраль 16, 2012, 14:56 Думаю человек просто не разобрался с Model-View и рубит с плеча.
Правда используется незнакомый мне С++11 и стиль программирования ммм... Стиль программирования такого типа недавно обсуждался на хабре, но мной был забракован за нечитабельностью и сложностью для понимания ;) Название: Re: Не отображаются итемы в кастомной моделе. Отправлено: Пантер от Февраль 16, 2012, 14:56 Это не стиль программирования - это новый стандарт языка с++.
Название: Re: Не отображаются итемы в кастомной моделе. Отправлено: Bepec от Февраль 16, 2012, 14:57 Не, непонятные мне моменты - это С++11. А умышленные отступы - это стиль программирования.
Название: Re: Не отображаются итемы в кастомной моделе. Отправлено: magog от Февраль 16, 2012, 14:59 Думаю человек просто не разобрался с Model-View и рубит с плеча. Правда используется незнакомый мне С++11 и стиль программирования ммм... Стиль программирования такого типа недавно обсуждался на хабре, но мной был забракован за нечитабельностью и сложностью для понимания ;) 1. Тоесть в чем причина Вы не знаете, поэтому пусть во всем виноват я. Ок. 2. С каких пор программисту стал важен стиль, что бы разобраться в коде? И да - не вижу ни одного места, страшного, если так можно сказать. 3. Аргументы будут да и вообще? Не можете оказать помощь из-за стиля - проходите мимо Название: Re: Не отображаются итемы в кастомной моделе. Отправлено: Bepec от Февраль 16, 2012, 15:00 Агриться не стоит. Я только с anrew.k собачусь :D
Простой вопрос - вы писали ранее уже свою модель? простейшую? Название: Re: Не отображаются итемы в кастомной моделе. Отправлено: magog от Февраль 16, 2012, 15:01 Это моя первая модель для дерева. Обычные таблицы писал и все ок работает.
Название: Re: Не отображаются итемы в кастомной моделе. Отправлено: sudo от Февраль 16, 2012, 15:17 В общем, не осилил, переписав чуть ли не половину кода :D Будет время, может поковыряю
Название: Re: Не отображаются итемы в кастомной моделе. Отправлено: magog от Февраль 16, 2012, 15:18 Да что там переписывать пришлось? там 1 лямбда и 2 инит списка. Вот и все
Название: Re: Не отображаются итемы в кастомной моделе. Отправлено: Bepec от Февраль 16, 2012, 15:24 В принципе всё понятно. (частично, могу и ошибаться)
У тебя просто никогда не возвращается верный индекс... Даже если посмотреть - у тебя нет элементарных проверок на наличие чилдренов, ты просто берёшь 0 элемент из 0 массива и пытаешься вернуть на него индекс Оо... Соответственно, ничего и не появляется. Мой тебе совет - не мчись сразу в "я хочу полный функционал". А сделай проще - сначала модель с заглушками и только Top Item'aми, потом уже добавляй функционал. update: да переписать я переписал, не проблема. У тебя все данные пытаются взяться с твоего "Item'a", который на тот момент пустой :/ Название: Re: Не отображаются итемы в кастомной моделе. Отправлено: magog от Февраль 16, 2012, 15:29 Куда уже примитивнее? Добавляется итем. Добавляется только в верхний уровень. И пример практически буква в букву - examples. Но почему-то не показывает ничего
Название: Re: Не отображаются итемы в кастомной моделе. Отправлено: Bepec от Февраль 16, 2012, 15:33 Код: QModelIndex TreeModel::index (int row, int column, const QModelIndex& parent) const Помоему проще новую модель написать с 0, чем выяснять что тут у тебя творится... Название: Re: Не отображаются итемы в кастомной моделе. Отправлено: magog от Февраль 16, 2012, 15:44 Сейчас это и пытаюсь сделать.
Название: Re: Не отображаются итемы в кастомной моделе. Отправлено: Bepec от Февраль 16, 2012, 15:45 (2 поста подряд плохо, зато внимание привлекает. Прошу не бить ^,^ )
У тебя сейчас попытка построить древовидную модель с 1 топИтемом + 5 итемов 2 уровня. Причём есть функционал: + добавления, + удаления, + вставки строк . + название столбцов, количество столбцов/строк берётся именно из топИтема (для всей модели), что категорически рубит всю модель + индекс у тебя вычисляется непонятным образом + каждый раз при вызовах ТопИтема, ты зачем то создаёшь на него указатель + в функции возврата индекса ты берёшь 0 элемент из 0 массива + из этого несуществующего указателя на элемент ты берёшь ещё аж целых 3 параметра В результате твоя программа, при правильной работе % на 250 упала бы, и дай боже, если б не потянула за собой IDE ;) Тут надо переписывать почти всё. Проще заного сделать простую модель с 1 айтемом. update: могу завтра попробовать накидать тебе тестовую древовидную модель, но только если ты изъявишь желание ;) Название: Re: Не отображаются итемы в кастомной моделе. Отправлено: magog от Февраль 16, 2012, 15:47 Не надо. Я сам себе могу накидать. Спасибо.
Название: Re: Не отображаются итемы в кастомной моделе. Отправлено: Bepec от Февраль 16, 2012, 15:50 Пожалуйста, приходи ещё ;)
|