2011-04-13 2 views
2

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

Например: диалоговое окно настроек/параметров, которое изменяет поведение главного окна.

Сделал бы мою «главную» (например, где должен быть только один экземпляр окна, видимого за раз). Синглтоны - хорошая идея? Так как в любом случае должны быть по одному?

Это облегчило бы и облегчало бы отдельные окна для общения.

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

Например: MainWindow.setFont (Font f);

Спасибо за любой ввод.

+0

Означает ли другое окно о другом? то есть. это код в главном окне, отвечающем за отображение окна настроек, в качестве примера? –

+0

Считаете ли вы использование объекта приложения в качестве одноэлементного, чтобы поддерживать связь с Windows? – 9000

+0

@ 9000. Да. Но это казалось немного более аккуратным и расширяемым. –

ответ

3

Хорошо читайте на тему GUI Architectures от Martin Fowler, которая охватывает различные шаблоны дизайна. Например, шаблон Observer Synchronization может работать для вас в контексте указанной статьи.

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

+0

Благодарим вас за предложения. Я не пытаюсь создать целую структуру, просто хороший способ организовать мой графический интерфейс ... –

0

Это одна из вещей, которые Qt получает правильно. Если вы хотите связаться с окном, отправьте ему сигнал - тогда окно может иметь дело с получением сигнала или нет, отправителю не нужно заботиться, даже если оно существует.

+0

Ответы на вопросы OpenCV разочаровывают это? Редко ppl upvote и почти никогда OP не возвращается, чтобы принять ответ. – karlphillip

+0

@karlphillip - проблема также в том, что openCV «официальный» список - это ужасный сайт групп yahoo - нет нигде для продвинутых пользователей opencv. –

Смежные вопросы