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

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

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


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

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

13 ответов

25 просмотров

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

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- Автор вопроса

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

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

Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Объясните, пожалуйста, почему компилятор ругается на использование в условии неинициализированной переменной: int x; Task.Run(async () => { x = await somefunc(); }).Wait...
Александр
5
Ребят, подскажите, пожалуйста, почему в префиксе к ассетам, которые генерируются через фильтр | theme в шаблоне, стал вдруг появляться index.php? Вот так выглядит ссылка на а...
Виталий
1
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Коллеги, может знает кто, можно ли цвет бейджа счётчика в BackendMenu менять без бубнов?
Alex Blaze
3
Карта сайта