![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
Delphist |
![]() ![]()
Сообщение
#1
|
Студент ![]() Группа: Новичок Сообщений: 41 Регистрация: 4.8.2008 Из: Россия Пользователь №: 249 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Возникла следующая проблема. У меня есть класс вида:
по сути это класс иерархической структуры, поэтому для его наглядного изображения я использовал принцип модель-представления, в качестве представления я использую TreeView в качестве модели свой класс наследованный от QAbstractItemModel. Проблема следующая, когда у меня дерево вида: Obj1 (rootNode) | |__Child1 | | | |__Child11 | |__Child2 то моя модель не отобраэает rootNode, а отображает вот так, в чем может быть проблема. |__Child1 | | | |__Child11 | |__Child2 1. Из-за чего может возникать такая проблема? 2. Может у кого есть, примеры реализации отображения деревьем использующие в качестве контейнера QHash(QString, SameClass*)? |
|
|
Litkevich Yuriy |
![]()
Сообщение
#2
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
давай свой код сюда.
|
|
|
Tonal |
![]()
Сообщение
#3
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 452 Регистрация: 6.12.2007 Из: Новосибирск Пользователь №: 34 Спасибо сказали: 69 раз(а) Репутация: ![]() ![]() ![]() |
rootIsDecorated. Оно?
|
|
|
Delphist |
![]()
Сообщение
#4
|
Студент ![]() Группа: Новичок Сообщений: 41 Регистрация: 4.8.2008 Из: Россия Пользователь №: 249 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
давай свой код сюда. Даю весь исходник (MyMonitor.zip в прикрепленном файле), не нужное я оттуда повыкидал, кое что переименовал, но суть работы остается rootIsDecorated. Оно? Нет не оно Сообщение отредактировал Delphist - 11.8.2008, 11:58
Прикрепленные файлы
|
|
|
Delphist |
![]() ![]()
Сообщение
#5
|
Студент ![]() Группа: Новичок Сообщений: 41 Регистрация: 4.8.2008 Из: Россия Пользователь №: 249 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Да, вижу вопрос не из простых.
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#6
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
скачал твои исходники, посмотрю.
Так на в скидку о проблеме, видимо ты модель не коректно строиш из свои данных, а именно см. рисунки Классы моделей, может ты не обратил внимание на Корневой Элемент, это фиктивный элемент. и он видимо у тебя и возвращается моделью. |
|
|
Delphist |
![]()
Сообщение
#7
|
Студент ![]() Группа: Новичок Сообщений: 41 Регистрация: 4.8.2008 Из: Россия Пользователь №: 249 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
niXman |
![]()
Сообщение
#8
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 169 Регистрация: 18.6.2008 Пользователь №: 204 Спасибо сказали: 1 раз(а) Репутация: ![]() ![]() ![]() |
Litkevich Yuriy, Мдя... Я уже помучкался с этим кодом )))
|
|
|
Delphist |
![]() ![]()
Сообщение
#9
|
Студент ![]() Группа: Новичок Сообщений: 41 Регистрация: 4.8.2008 Из: Россия Пользователь №: 249 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Народ помагите. не оставляйте меня одного с этой проблемой
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#10
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Т.к. не всегда и не у всех есть желание или время подробно изучать код, расказывай подробности.
1) Lib\my.cpp(h) 2) main.cpp - тут понятно 3) mymodel.cpp(h) 4) mymonitor.cpp(h) 5) mymonitor.qrc 6) mymonitor.ui 7) sdmtest.cpp(h) Вопросы по каждому пункту одни и теже: 1) Для чего нужен этот файл (что в нем и какую роль выполняет)? 2) Как связан с другими файлами и зачем? Отдельный вопрос для чего нужен отдельный каталог Lib? |
|
|
Delphist |
![]()
Сообщение
#11
|
Студент ![]() Группа: Новичок Сообщений: 41 Регистрация: 4.8.2008 Из: Россия Пользователь №: 249 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Т.к. не всегда и не у всех есть желание или время подробно изучать код, расказывай подробности. 1) Lib\my.cpp(h) 2) main.cpp - тут понятно 3) mymodel.cpp(h) 4) mymonitor.cpp(h) 5) mymonitor.qrc 6) mymonitor.ui 7) sdmtest.cpp(h) Вопросы по каждому пункту одни и теже: 1) Для чего нужен этот файл (что в нем и какую роль выполняет)? 2) Как связан с другими файлами и зачем? Отдельный вопрос для чего нужен отдельный каталог Lib? Каталог Lib нужен просто для того чтобы отделить сторонние файлы от проекта который я разрабатываю my.cpp - собственно класс иерархической структуры - за счет использования QHash. Даный класс испоьзуется в модели mymodel.cpp - здесь реализации модели которая позволяет конечному пользователю через представление TreeView увидеть класс (находящийся в my.cpp) в виде дерева. mymonitor - здесь собственно реализация взаимодействия действий пользователя через GUI с моделью sdmtest.cpp - временный класс нужный просто для забивания произвольными данными класс из my.cpp для того чтобы просто посмотреть как же выводиться дерево |
|
|
Litkevich Yuriy |
![]()
Сообщение
#12
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
вообщем как бы я начал делать твою прогу.
Сделал бы интерфейс, который компилится, но несодержит модели и следовательно данные. 1) Главный файл не содержит ничего лишнего, только стандартный набор (обычно его засовывают в клас унаследованый от QApplication, но пока так) + главный виджет программы 1.1) файл main.cpp
2) Главный виджет 2.1) Файл mymonitor.ui ![]() создан на основе QWidget, т.к. ты не использовал ничего из особенностей QMainWindow, и сможешь встроить его как обычный виджет в любую программу, по завершении тестов. Имя главного класса: MyMonitor Имя древовидного представления: view 2.2) На его основе создаю класс MyMonitor (два файла mymonitor.cpp/h) с монежественным наследованием, от QWidget и от того что в ui-файле mymonitor.h
mymonitor.cpp
Все. Это должно компилится и к этому более не возвращаемся, вся прочая работа по подключению к модели ведется в конструкторе MyMonitor. Далее мои действия были бы такими: 3) Продумывание способа хранения данных. 4) Создание модели 5) Подключение ее к представлению, как указано выше. ------ Теперь вопрос, откуда идея: "класс иерархической структуры - за счет использования QHash"? Т.е. почему такой способ хранения данных? Откуда берутся данные? |
|
|
Гость_Гость_Delphist_*_* |
![]()
Сообщение
#13
|
Гости ![]() |
Теперь вопрос, откуда идея: "класс иерархической структуры - за счет использования QHash"? Т.е. почему такой способ хранения данных? Откуда берутся данные? В моем примере MyMonitor.zip (который здесь представлен) все подробно показано как заполняется класс иерархической структуры, затем показано как этот класс используется в моей модели, и мой вопрос звучал так: почему не отображается rootNoode, нормальный ответ должен звучать приблизина так Delphist у тебя там то там то есть ошибка, если же у меня все правильно, то сказать причину по которой не выводится rootNode. Вот и все. А заниматься демагогией можно бесконечно долго ток вопроса это не решает. Поэтому, большая просьба, давать ответы по сути, а не спрашивать "откуда идея: "класс иерархической структуры - за счет использования QHash", почему такой способ хранения. Так и хочется сказать по качену, но сдержусь и отвечу, есть проект который разрабатывал не я, есть тех. зад. которое диктует мне руководство, а я всего лишь программист, и должен писать в том фундаменте который был создан без меня. и класс указанный в my.cpp он уже существует очень давно, и менять QHash на QList из-за меня не будет. Вот так вот. |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 30.6.2025, 8:26 |