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

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

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


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

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

13 ответов

12 просмотров

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

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

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

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

Всем привет. Нужна платная консультация от тех, кто сталкивался с октябрём в кластере или шарит оч хорошо в цмс. Проблема следующая: после переноса в кластер октябрь начал ...
wl
8
Добрый день, не подскажите, если в OC-V3 поменять страндартную директорию /storage/ на /storage2/ - не будет сильно много проблем ?
Max Dubovsky
32
'frakturBold' => ['𝖆', '𝖇', '𝖈', '𝖉', '𝖊', '𝖋', '𝖌', '𝖍', '𝖎', '𝖏', '𝖐', '𝖑', '𝖒', '𝖓', '𝖔', '𝖕', '𝖖', '𝖗', '𝖘', '𝖙', '𝖚', '𝖛', '𝖜', '𝖝', '𝖞', '𝖟', '𝕬', '𝕭', '𝕮', '𝕯'...
Roma
4
а я честно сказать не понимаю - нахуя идти учиться на вышку или еще куда-либо и при этом нихуя не делать, типа зачем ? просто корку получить, а нахуй она нужна тогда ?
Eugene Неелов
7
Каким то образом можно определить ширину экрана пользователя перед загрузкой partial-а? Надо рассчитать ширину кадров слайдера для ресайза картинок для container-fluid.
Point 111
22
зараз якщо створити файл core/custom/define.php з текстом <?php const NO_SESSION = true; можна позбутися сесійних кукі (що зручно, щоб не показувати людям банери про збір та в...
Artur Kyryliuk
1
А сколько часов мак держит зарядку в рабочем режиме? Например мой Redmi Mac (просто наклейка от айфона осталась, налепил) по началу держал часов 5 с парой открытых штормов и ...
Ross
8
я бы даже сказал не размер резюме, а слова, которые там написаны, потому что резюме может быть на несколько десятков страниц из-за 20 летнего опыта работы, но там в опыте буде...
Eugene Неелов
2
так а я не могу просто новый сделать ? я пробовал не прокатило но может чето упускаю
Максим
3
Ребят, было ли у вас так, что переменные в WebApp —tg-viewport-height, —tg-viewport-stable-height после метода expand не обновляются, а остаются в размерах, как было до expand...
Black
3
Карта сайта