Russian Qt Forum

Qt => Общие вопросы => Тема начата: Lego от Апрель 27, 2010, 17:02



Название: Создание иерархии через QObject?
Отправлено: Lego от Апрель 27, 2010, 17:02
Здравствуйте, только начал осваивать C++ и Qt в частности.
Стоит задача организации некой иерархии объектов заданного класса, с возможностью легко добавлять, передвигать и удалять элементы.
Первое решение - использовать QObject, в котором есть всё необходимое. Но возможно есть и более лучшие варианты.
Что могут на это сказать опытные люди?

Если всё же использовать в основе QObject, то хотелось бы использовать перекрытие его методов. Например children(), дабы получать от него не QObjectList, а скажем QSomeClassList (QList<SomeClass*>). Как такое можно реализовать и/или где можно об этом что-нибудь почитать?

Заранее всем спасибо.


Название: Re: Создание иерархии через QObject?
Отправлено: lit-uriy от Апрель 27, 2010, 19:30
>>Как такое можно реализовать и/или где можно об этом что-нибудь почитать?
Ну во-первых в учебнике по С++ (переопределение виртуальных методов).
Во-вторых, в переопределённом методе можно использовать возможности поиска детей заданного класса от самого QObject (например, T QObject::findChild ( const QString & name = QString() ) const)

Однако, имея в своём распоряжении такой метод у QObject, необходимость переопределения метода children я ставлю под сомнение


Название: Re: Создание иерархии через QObject?
Отправлено: Lego от Апрель 27, 2010, 20:10
Переопределение методов - это понятно. А вот как его реализовать для методов (причём не виртуальных) QObject - не совсем, т.к. там совсем всё не просто.
А что можно сказать насчёт самого решения использовать для этих целей QObject?


Название: Re: Создание иерархии через QObject?
Отправлено: lit-uriy от Апрель 27, 2010, 21:38
не виртуальные методы нельзя переопределить.

>>А что можно сказать насчёт самого решения использовать для этих целей QObject?
>>...
>>с возможностью легко добавлять, передвигать и удалять элементы.
откровенно говоря, суть задачи не понятна.


Название: Re: Создание иерархии через QObject?
Отправлено: Lego от Апрель 27, 2010, 22:18
Цитировать
не виртуальные методы нельзя переопределить.
Эээ... я, конечно, новичок, но всё же должен сказать, что вы или ошиблись, или не точно выразились.

Цитировать
откровенно говоря, суть задачи не понятна.
Всё просто - нужна иерархия объектов определённого класса. Объекты не большие, но их будет много. Соответственно, нужно чтобы их можно было находить в дереве, и манипулировать.


Название: Re: Создание иерархии через QObject?
Отправлено: m_ax от Апрель 27, 2010, 22:50
Я что то тож не вкуриваю))

Если все объекты - есть экземпляры одного класса и   
Цитировать
Стоит задача организации некой иерархии объектов заданного класса, с возможностью легко добавлять, передвигать и удалять элементы.
то не контейнер ли Вы изобретаете?
И при чём тут дерево? Смысл?