Форум русскоязычного сообщества Ubuntu


За новостями русскоязычного сообщества и Ubuntu в целом можно следить на нашей страничке в Google+

Автор Тема: Правильное GUI/консоль приложение  (Прочитано 2439 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн savy

  • Автор темы
  • Новичок
  • *
  • Сообщений: 25
    • Просмотр профиля
Правильное GUI/консоль приложение
« : 28 Декабрь 2009, 16:04:26 »
Всем Привет!

Подскажите, плиз, какое должно быть "правильное" приложение?
Т.е. как сделать так, чтобы оно и как консольное запускалось и как оконное? Какие "либы" сейчас используют? Программирую под питоном, но хорошие концепции подойдут, имхо, для любого языка ))

Оффлайн Упс

  • Старожил
  • *
  • Сообщений: 3231
    • Просмотр профиля
Re: Правильное GUI/консоль приложение
« Ответ #1 : 28 Декабрь 2009, 22:58:27 »
Всем Привет!

Подскажите, плиз, какое должно быть "правильное" приложение?
Т.е. как сделать так, чтобы оно и как консольное запускалось и как оконное? Какие "либы" сейчас используют? Программирую под питоном, но хорошие концепции подойдут, имхо, для любого языка ))
Тема "правильного" приложения не раскрыта, понятие растяжимое. GTK, GNOME, QT, KDE, ..........?
Написать консольное и добавить GUI. Либы используют те которые нужны. Или интересует существует-ли мода на либы, типа в этом сезоне используем ......
xUbuntu 12.04

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2540
    • Просмотр профиля
Re: Правильное GUI/консоль приложение
« Ответ #2 : 29 Декабрь 2009, 08:31:41 »
"Правильные" концепции такие, мсм:
- межплатформенность (обязательно)
- изначально заложенная распределенность приложения
- отображение через браузер или консоль.
Если речь идет про отдельное приложение (само в себе и не планируете ничего в смысле переноса), то делайте что угодно и как угодно (как Вам проще).

Оффлайн savy

  • Автор темы
  • Новичок
  • *
  • Сообщений: 25
    • Просмотр профиля
Re: Правильное GUI/консоль приложение
« Ответ #3 : 01 Январь 2010, 09:01:57 »
Всех с Новым Годом!

Например, у меня стоит графический архиватор (File Roller), который, как я понимаю, при открытии архива сначала передаёт имя архива програме p7zip, а потом получает от неё список файлов и строит по нему свой графический List. Xarchiver также, наверняка, использует p7zip. Т.е. любой может написать свою обёртку на любом языке и для любой среды. Вот мне и хотелось бы узнать, как они там общаются между собой? ))

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2540
    • Просмотр профиля
Re: Правильное GUI/консоль приложение
« Ответ #4 : 11 Январь 2010, 11:38:20 »
Какая-то графическая программа (неважно на чем написанная) по щелчку запускает какую-то консольную утилиту. Результат ее (stdout) парсится и выводится (разносится по полям) в графической программе.
Примеры.
на php и перле что-то типа
$var =`команда параметры_всякие_разные_от_графической_утилиты`;
на C#, Java, C/C++ (Qt, Gtk, Tk) есть аналогичные вызовы команд, см. posix.
« Последнее редактирование: 11 Январь 2010, 11:58:40 от alexander.pronin »

Оффлайн Riateche

  • Активист
  • *
  • Сообщений: 279
    • Просмотр профиля
    • Idzaaus
Re: Правильное GUI/консоль приложение
« Ответ #5 : 11 Январь 2010, 12:01:21 »
Имхо, более правильное решение - сделать библиотеку, реализующую функциональные возможности программы, а затем написать отдельно консольную и графическую утилиты, которые юзают эту библиотеку. Если вы пишете на питоне, то библиотеку можно реализовать  в виде обычного модуля.

Всё-таки парсить вывод консольной утилиты - это изврат. Простой пример: функция возвращает вам массив, консольная утилита его выводит. Графическая должна брать этот вывод и заново превращать его в массив? Нет, лучше взять ту же функцию, написанную вами, которая возвращает массив, и просто получить из нее массив.

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2540
    • Просмотр профиля
Re: Правильное GUI/консоль приложение
« Ответ #6 : 11 Январь 2010, 12:14:21 »
Всё-таки парсить вывод консольной утилиты - это изврат.
Извращение - писать каждый раз консольные утилиты (с новыми (старыми ошибками). Я знаю случаи, когда такое написание кончалось крахом fs. После таких экспериментов желание изобретать велосипед пропадало.
Я не говорю, что использование проверенного кода - это быстрее, безопаснее и более платформенно независимее (если можно об говорить). 8)

Оффлайн Frank

  • Старожил
  • *
  • Сообщений: 1799
  • Профессиональный любитель
    • Просмотр профиля
    • Народный форум Николаева
Re: Правильное GUI/консоль приложение
« Ответ #7 : 11 Январь 2010, 12:27:17 »
В таком случае делается так: пишется весь функционал в отдельной библиотеке (.so в линукс, .dll в винде), а так же пишутся юзающие её обёртки-гуи: консольный, GTK, Qt, итд.

 

Страница сгенерирована за 0.057 секунд. Запросов: 24.