Идеологически верный выбор инструментов. |
Здравствуйте, гость ( Вход | Регистрация )
Идеологически верный выбор инструментов. |
Obey-Kun |
3.4.2010, 3:28
Сообщение
#11
|
Студент Группа: Участник Сообщений: 96 Регистрация: 24.3.2010 Пользователь №: 1556 Спасибо сказали: 3 раз(а) Репутация: 0 |
Цитата вообще соединять в дочернем объекте сигнал родителя - плохая идея, т.к., как минимум, при чтении кода, сначала читается код верхнего, по иерархии, объекта. И лишь при возникновении непонимания лезишь внутрь дочернего. Поэтому такое соединение нужно делать в родительском объекте. Вот-вот . Теперь всегда буду так делать. но с другой стороны, тогда слот придётся делать публичным... так точно обычно делают? |
|
|
Litkevich Yuriy |
3.4.2010, 3:46
Сообщение
#12
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
Obey-Kun |
3.4.2010, 3:56
Сообщение
#13
|
Студент Группа: Участник Сообщений: 96 Регистрация: 24.3.2010 Пользователь №: 1556 Спасибо сказали: 3 раз(а) Репутация: 0 |
Цитата ну слот - функция, просто в отличие от функции-члена класса с ним можно связать сигнал. Да я знаю. Просто по-хорошему в моём случае слот можно сделать приватным и коннектить к нему сигнал пэрента в конструкторе. Это ради нормальной инкапсуляции и всё такое. |
|
|
Litkevich Yuriy |
3.4.2010, 4:03
Сообщение
#14
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
при таком подходе тебе нужно будет сделать видимым объявление перечисления внутри класса дочернего объекта.
Инкапсуляция похоронена заживо. А самое главное - похоронена концепция компонентного подхода (предоставляемая сигналами и слотами), т.к. компонент стал жёстко зависеть от конкретного includ'а можно конечно отказатся от объявления в сигнале и слоте перечисления и использовать int, но тогда контроль области определения функции (диаппазона изменения int'а) будешь делать своими глазами |
|
|
Obey-Kun |
3.4.2010, 4:11
Сообщение
#15
|
Студент Группа: Участник Сообщений: 96 Регистрация: 24.3.2010 Пользователь №: 1556 Спасибо сказали: 3 раз(а) Репутация: 0 |
Цитата при таком подходе тебе нужно будет сделать видимым объявление перечисления внутри класса дочернего объекта. Так ведь в любом случае надо делать объявление перечисления видимым как минимум в MainWindow (он испускает сигнал) и во Вью (там слот). У меня enum объявлен в файле с константнами, типа того: Раскрывающийся текст
Ну а файл с константами подключается там, где надо. Так что не страшно. Кстати, всё почему-то заработало без ковыряния с Q_ENUMS. Сообщение отредактировал Obey-Kun - 3.4.2010, 4:12 |
|
|
Текстовая версия | Сейчас: 27.11.2024, 7:24 |