LINUX.ORG.RU

ГУЙ и «мясо»


0

0

Здраствуйте.

Есть ли в природе книжки\статьи где было бы подробно\кратко описанно как нужно писать проект, чтобы потом было легко натягивать [любой] GUI-интерфейс.

Спасибо.

★★★

Почитай камасутру в картинках. Там описано как можно натягивать интерфейс на мясо :-)

anonymous
()

ыыы, а если серьезно? имеется в виду про стыковку гуи и "ядра", в QT к примеру, такое реализованно через слоты и сигналы, но если я захочу проект перевести с QT на GTK или еще что либо то прийдется многое переписывать. Есть ли технологии помогающие решить данную проблему?

fura13 ★★★
() автор топика
Ответ на: комментарий от fura13

Так тебя технологии интересуют, или общие принципы реализации?

one_more_hokum ★★★
()

Ну дык это, читай про библиотеки, экспорт функций...

anonymous
()

Логику приложения - в консоль/демон/сервис, гуй - соединить с ней по sockets/pipes/да_мало_что_ли_средств_IPC?

one_more_hokum ★★★
()

Как один из вариантов: на низком уровне (Asm/C/C++/etc - в зависимости от задачи) пишем код ядерной части. А потом на скриптовом языке пишем код морды.

Sectoid ★★★★★
()
Ответ на: комментарий от one_more_hokum

во блин действительно же, спасибо большое!

ЗЫ: а у венды такое "общение через IPC" гуя с демоном происходит без проблем? (хочу кроссплатформенно)

fura13 ★★★
() автор топика

Обычно делается библиотека с сишным интерфейсом, к котором потом легко прикручивается всё остальное. В большинстве случаев можно просто из GUI вызывать нужные функции этой библиотеки. Для GUI вполне пойдут скриптовые языки. Если подразумеваются тяжёлые длительные расчёты или что-то такое, то лучше к библиотеке приделать простой консольный интерфейс, чтобы можно было легко запустить отдельный процесс и общаться с ним через трубу — кроссплатформеннее не придумаешь. Можно и сокет, если есть необходимость (например, хочется держать ядро и GUI на разных машинах).

ero-sennin ★★
()

Почитай про идиому MVC. Хороших статей я про нее не встречал, хотя помнится долго и упроно искал...

Macil ★★★★★
()
Ответ на: комментарий от fura13

>> любой многозадачной ОС

> то есть венда отпадает?

Я, конечно, понимаю, неприязнь к венде и все такое. Но венда таки считается многозадачной ОС. А из многозадачности следует наличие хотя бы одного вида IPC. Выводы сделай сам.

friday ★★★
()
Ответ на: комментарий от ero-sennin

>запустить отдельный процесс и общаться с ним через трубу — кроссплатформеннее не придумаешь.
Труба работает только в одном направлении, т. е. обратной связи ГУЯ с движка ты не получишь...

anonymous
()
Ответ на: комментарий от anonymous

> Труба работает только в одном направлении, т. е. обратной связи ГУЯ с движка ты не получишь...

Ну, привет! А вторая труба на что?

ero-sennin ★★
()
Ответ на: комментарий от fura13

Про GoF знаешь? Если нет - срочно http://en.wikipedia.org/wiki/Design_Patterns . Конкретнее Abstract Factory, Observer, Strategy, Facade, State(если есть посылка/прием сообщений). Ну и MVC, но он afair не из gof.

PS. Imho про Pipe-ы и прочие ipc тут зря говорят, это как из пушки по воробьям.

YesSSS ★★★
()

мне тута понравилась идея обьединять гуй с логикой через dbus. Мне кажется что это самый простоя способ иметь к одной проге одновременно Qt и Gtk морды

cvv ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.