Друзья. Подскажите, нормально ли делать так: У меня есть класс со

своими параметрами, к примеру Station.
У него должно быть диалоговое окно и он должен выбираться кликом из меню.

Вопрос, правильно ли делать множественное наследование классу Station от классов QDialog и QListItem?
Просто тогда можно двух зауцев сразу убить и запихать все в один удобный класс который можно напрямую в QListView подавать...


Просто вопрос в том что если обьектов Station будет очень много... то такждый обьект будет иметь свое окно.
Ну типа памяти много будет занимать, наверное... или не?

Я прост не до конца освоился еще.
Хз как правильно сделать.

13 ответов

20 просмотров

Если можно обойтись без множественного наследования, то обходитесь. Памяти немного, кутешные классы хранят всё что могут в куче.

Vyaches- Автор вопроса
Michael Chambers
Если можно обойтись без множественного наследовани...

Ну там какаято дичь получается без множественного наследования. Типа сделать в том же QListView ещё один массив с указателями на Station. По клику передавать их в диалог и т.д....

Агрегирование лучше наследования

Vyaches
Ну там какаято дичь получается без множественного ...

Передавайте в диалог указатель на текущий Station а не на массив.

Vyaches- Автор вопроса
Michael Chambers
Передавайте в диалог указатель на текущий Station ...

Как в таком случае вносить изменения из диалога в station? Сигналом?

Vyaches
Как в таком случае вносить изменения из диалога в ...

Так если диалог имеет доступ к объекту Station то в чем возникает проблема?

Vyaches- Автор вопроса
Michael Chambers
Так если диалог имеет доступ к объекту Station то ...

Неправильно вопрос сформулировал. Спасибо за ответы. Сам немного запутался)

Vyaches- Автор вопроса
Michael Chambers
Так если диалог имеет доступ к объекту Station то ...

Еще небольшой вопрос. Можно ли вызвать QDialog из класса Station для изменения самого же Station? Рекурсия #include получается прост.

Vyaches
Еще небольшой вопрос. Можно ли вызвать QDialog из ...

Так если я всё правильно понял, то в листе у вас хранятся указатели на Station, для каждого элемента листа вы можете вызвать QDialog, который будет иметь доступ к текущему элементу. Зачем тогда вызывать QDialog изнутри Station? В конце концов есть forward declaration

Vyaches- Автор вопроса
Michael Chambers
Так если я всё правильно понял, то в листе у вас х...

Не совсем так. Это общие вопросы. Вообще есть QGraphicScene. На нее по клику заносятся Station. По другому клику на тот же station можно найти на него указатель. Кроме этого сбоку есть QListView. В него также наносятся station после того как они были добавлены на QGraphicScene. Был вопрос в том как это сделать компактро и удобно. Чтобы при клике как на qgraphicscene так и на qlistview находился нужный указатель и открывалось диалоговое окно.

Vyaches- Автор вопроса
Vyaches
Не совсем так. Это общие вопросы. Вообще есть QGr...

Раньше я делал массив добавленных указателей, отображал их в qListView. Потом по клику в QListView пытался найти тот указатель в массиве и т.д. В общем куча кода и как-то не очень удобно. Сейчас вот сделал множественное наследование, и теперь по любому клику(что на сцене, что в листе) все аккуратно показывается. Смущает лишь то правильный ли это подход и не является ли это "плохой практикой".

Vyaches
Раньше я делал массив добавленных указателей, отоб...

Ну тогда и оставьте множественное наследование, возможно потом придет идея как сделать без него

Vyaches- Автор вопроса

Похожие вопросы

Обсуждают сегодня

Ребята, всем привет. Подскажите, пожалуйста, можно ли как-то через бота понять, что этого бота добавили в группу\канал и выдали ему права администратора?
Artem Stormageddon
9
Это переведённый текст с английского. Я не говорю на русском, но могу использовать переводчик Телеграм. Приветствую! Я начинающий веб-разработчик и все еще учусь. В настояще...
𐩱𐩪𐩣𐩱𐩲𐩺𐩡
2
А не хотим ли мы развлечься? 😉 Но так чтобы с пользой для наших профессиональных навыков?? 👨‍🎓👩‍🎓 Предлагаю на октябрь запланировать тестовый запуск новой командной игры "Игр...
Andrii Kurdiumov
2
Привет всем! Почему этот код не срабатывает при добавлении или удалении пользователя из чата? bot.on('chat_member', async (ctx) => { console.log(ctx); }) bot.launch({allo...
Alexander
5
у кого сколько оперативы на базе данных ?
АДИЛЬБЕК
4
Через бот апи возможно получить ID стикерпака? Не ссылку.
Vexylon [АФК до 09.09]
5
Привет Хочу сделать аналог iCloud’а для своих проектов, чтобы пользовательская информация хранилась в облаке, была доступна во всех сервисах, её можно было подсасывать везде)...
Виталий
9
В тг можно спарсить всех кто пишет в группе? Если список участников скрыт
S
3
код Event::listen('cms.page.display', function (&$content, $slug, $page, $html) { if (is_object($content)) { dump($content); } else { dump($s...
Point 111
3
Ребят, а двух-факторку для плагина Users и для бэкенда октября кто-то прикручивал? Поделитесь опытом
Constantine Anikin
4
Карта сайта