Модераторы: xvr
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> GUI<->console, динамическое переключение интерфейсов 
:(
    Опции темы
Jcs
Дата 8.11.2007, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 156
Регистрация: 1.10.2003

Репутация: нет
Всего: нет



Здравствуйте. Была ли у кого-нибудь задача переключения интерфейсов из GUI в консоль и обратно во время выполнения? Если да, то был бы очень признателен примеру (желательно на GTK или GTKMM) или хотя бы пояснению в общих чертах как это сделать. Пока для меня главная трудность в остановке и перезапуске циклов обработки событий. В gtkmm, например, гуевый цикл запускается через Gtk::Main::run, для обработки консольного ввода-вывода придется писать свой цикл. Можно, конечно, запускать  оба, и GUI при необходимости скрывать (цикл обработки сделать в отдельном потоке и суспендить его при надобности), но мне этот путь не очень нравится. Хотелось бы именно удаления и создания интерфейса заново (причем в правильном состоянии), потому как может появиться какой-нить третий интерфейс, например сеть. Надеюсь, что написал не слишком запутанно. Заранее спасибо.
PM   Вверх
JackYF
Дата 8.11.2007, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 3
Всего: 162



Цитата(Jcs @  8.11.2007,  16:50 Найти цитируемый пост)
Была ли у кого-нибудь задача переключения интерфейсов из GUI в консоль и обратно во время выполнения?

честно говоря, нет.

Ну и как обычно, вопрос не в тему - а зачем такое потребовалось?


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
powerfox
Дата 8.11.2007, 19:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I wanna fork()
****


Профиль
Группа: Комодератор
Сообщений: 3990
Регистрация: 1.10.2005
Где: Санкт-Петербург

Репутация: 5
Всего: 97



Цитата(JackYF @  8.11.2007,  19:45 Найти цитируемый пост)
Ну и как обычно, вопрос не в тему - а зачем такое потребовалось? 

В Адепте, например, такое используется. Устанавливается deb. который нужно настроить, а настройка осуществляется с консоли. Да и во время установки запущен терминал, так как всё основано на обычных shell-скриптах.

Добавлено через 1 минуту и 44 секунды
Jcs, а почему бы просто не вставить в gui простенький свой терминал? Зачем именно переключаться между терминальным окном и своим (вы имели в виду, возвращаться к терминалу из которого запущено приложение?)


--------------------
user posted image
PM WWW   Вверх
JackYF
Дата 8.11.2007, 19:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 3
Всего: 162



Цитата(powerfox @  8.11.2007,  19:27 Найти цитируемый пост)
В Адепте, например, такое используется.

хм, буду знать. 
 smile что интересно, адепт я не перевариваю, манипулирую только аптом/dpkg из консоли. Адепт снес через 5 секунд после того как запустил smile


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
Jcs
Дата 9.11.2007, 09:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 156
Регистрация: 1.10.2003

Репутация: нет
Всего: нет



powerfox, вообще эта программа представляет собой сервер для обработки видео. Т.е. принялось видео по сети, обработалось и результат ушел обратно. Изначально предполагался только консольный вариант, но т.к. алгоритмы еще до конца не отлажены, то возникает потребность смотреть что реально происходит в системе, т.е. отображать вход и всякие промежуточные результаты. Конечно, после окончательной отладки надобность в этом снизится, если вообще не отпадет, но если не будет потери в производительности то можно будет оставить возможность переключения. Кроме того, у гуев и у консоли свои сторонники и противники, и, если с программой будут одновременно работать несколько человек - каждый сможет выбрать подходящий интерфейс.
PM   Вверх
bsa
Дата 9.11.2007, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 16
Всего: 196



тогда, имхо, стоит сделать интерфейс по выбору пользователя - параметром коммандной строки или по имени программы. Например, если запускается как gcoder (символическая ссылка на coder), то имеет GUI, а если как coder, то CLI (узнать можно через 0-й элемент параметра main() argv).
PM   Вверх
Jcs
Дата 10.11.2007, 23:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 156
Регистрация: 1.10.2003

Репутация: нет
Всего: нет



bsa, да, у меня была такая мысль, но тогда после запуска будет невозможно изменить интерфейс. Т.е. определять интерфейс будет тот, кто его запускает. Хотя, в принципе, можно сделать, что если запущен coder,  то при запуске gcoder гуевая оболочка будет цепляться к coder и наоборот. Но в этом случае уже речь пойдет о межпроцессном взаимодействии. Скорее всего, будет сложнее, но тем не менее вариант. Спасибо за идею.
PM   Вверх
Любитель
Дата 22.11.2007, 19:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: нет
Всего: 92



Цитата(Jcs @  10.11.2007,  23:28 Найти цитируемый пост)
Скорее всего, будет сложнее

Скорее всего будет проще smile

Общий движок всего твоего дела + любые фронтэнды. Могут работать и паралельно (только синкаться надо корректно). А протокол взаимодействия - это уж на вкус и цвет.


--------------------
PM MAIL ICQ Skype   Вверх
MAKCim
Дата 22.11.2007, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 84
Всего: 207



Цитата(Jcs @  10.11.2007,  23:28 Найти цитируемый пост)
Скорее всего, будет сложнее, но тем не менее вариант. Спасибо за идею. 

это самый правильный вариант


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Программирование под Unix/Linux"
xvr
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой "Код".
  • Вопросы мобильной разработки тут
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема »


 




[ Время генерации скрипта: 0.0665 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.