![]() |
|
![]() ![]() ![]() |
|
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 4 Всего: 110 |
кто-нибудь, подскажите, как в проекте с использованием Qt вы разделяете гуй от реализации?
всем спасибо. Это сообщение отредактировал(а) boostcoder - 21.10.2010, 12:24 |
|||
|
||||
SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
||||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 4 Всего: 110 |
вы меня неверно поняли. "отделить реализацию от гуя" - понимать дословно. |
|||
|
||||
SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
В случае с Qt это может быть 2-3 класса. 1 - GUI (QWidget), 2 - Logic (унаследованный от QObject'a), 3 - Logic 2 (обычный класс без мета-объектной системы). Сигналы от GUI подключаются к слотам Logic, слоты Logic взывают методы класса Logic 2. Но в простейшем случае между собой общаются только 2 QObject'a. |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 4 Всего: 110 |
если я вас правильно понял, так так:
псевдокод. я вас правильно понял? Это сообщение отредактировал(а) boostcoder - 21.10.2010, 11:23 |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 7 Всего: 250 |
нет.. Logic2 не знает ничего о Logic..максимум что она может потребовать, это делегата.. |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 4 Всего: 110 |
||||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 7 Всего: 250 |
только сейчас заметил этот вопрос.. интересно ударение на каком из слов ? |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 4 Всего: 110 |
||||
|
||||
null56 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 721 Регистрация: 19.3.2008 Репутация: 6 Всего: 12 |
||||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 7 Всего: 250 |
ммм.. нельзя ли поподробней, куда именно Вы предлагаете впихнуть посетителя по отношению к обсуждаемому в теме ? |
|||
|
||||
djamshud |
|
|||
![]() Пердупержденный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 23.11.2009 Репутация: 5 Всего: 39 |
У меня это разделено на три уровня. Первый - приложение. Второй - прослойка DOM-построения гуя в рантайме (обычно забивается через скриптуемый конфиг, но управлять можно и программно). Третий - плагин ко второму, собственно сам Qt, хотя в теории можно напрограммировать и на другом тулките. В конфиге описывается внешний вид программы и источники данных для разных элементов, кроме того первый уровень может просто сказать: "марь иванна, а давайте при###им на эту стену синий флажок? а сюда добавим такой элемент.. а тот удалим,.. а сюда занесем воон те данные", но обычно все ограничивается конфигом. Таким образом вся логика (первый уровень) в большинстве случаев полностью отделена от гуя и, что для меня весьма важно, полностью оторвана от унылого Qt Api с его унылым MVC.
-------------------- 'Cuz I never walk away from what I know is right Alice Cooper - Freedom |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 4 Всего: 110 |
||||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 7 Всего: 250 |
||||
|
||||
djamshud |
|
|||
![]() Пердупержденный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 23.11.2009 Репутация: 5 Всего: 39 |
boostcoder, грубо говоря выстраиваю XML-дерево описания гуя программы. Его можно построить динамически, а можно вытянуть из конфига, например такого:
-------------------- 'Cuz I never walk away from what I know is right Alice Cooper - Freedom |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |