побыстрее забацать кросс-платф. простой GUI

Landstreicher

Есть некоторая прога, суть которой сводится к тому что вводится некоторый набор из 4 параметров, входной файл и затем проивзодится много-много длинных и очень сложных математических вычислений. Прога в данный момент консольная, параметры передаются как аргументы коммандной строки. Вся разработка делается под Linux.
Нужно дать эту программу человеку с Windows, чтобы он мог с ней "играться". Для этого нужно быстренько сделать какой-то простенький GUI, с 4 edit-box-ами, filedialog-ом и выводом результата. Основное требование - простота и скорость создания GUI. Главное - все-таки вычисления, если не будет каких-нибудь фишечек-рюшечек (типа антиалиазенных шрифтов итп то это не страшно. Необходимо, чтобы GUI одинаково работал для Linux и для Windows.
Какую UI-библиотека лучше всего для этого подходит?
PS. Сами вычисления написаны на C++. Предпологается для интерфейса тоже использовать С++. Хотя можно легко сделать DLL и потом его грузить из проги на другом языке.

rosali

Предлагаю написать GUI на Python на библиотеке Tkinter. И сам Python и Tkinter кроссплатформенные. Уверен, что в Python легко подвязываются любые внешние (C,C++) примитивы. А вообще, я бы математику вынес в сервер, а GUI был бы клиентом (имеется в виду обычный TCP/IP). Я уже где-то писал, что так делать правильно, и пока не разубедился

Landstreicher

Решение выглядит очень привлекательно.
Такой вопрос: в результате подсчета генерируется большая (около 1000 x 1000) матрица чисел, которые надо визуализировать в GUI (предполагается для этого рисовать картинки). Можно ли в Python/TkInter передать из С int matrix[width * height * 3(rgb)], а там как-то воспринять ее как картинку? Через сервер - это кончено маза, но гонять 3 мегабайта через сокеты не хочется. Не будет ли задержек? Хотелось бы минимизировать время между тем как пользователь жмет кнопку, и тем, как видит на экран результат подсчетов.

sergey_m

Что страшного в гонении 3 Мб через сокет?

danilov

Лучше wxPython - гораздо красивше.
Я недавно python узаю, но wxPython + xrced это очень прсто и очень бустро (плюс кроссплатформенно)

danilov

Это генератор фракталов, что ли? Если да, то есть же куча стандартных прог...

rosali

А ты гоняй не матрицу, а картинку А еще из Python в _Python_ можно передать что угодно (даже код!, Python же интерпретируемый) - там сериализация есть, так что может стоит и на серверной стороне маленького питончика приручить

rosali

Я недавно python узаю, но wxPython + xrced это очень просто и очень быстро
Да вот я тоже python недавно для себя открыл, и Tkinter тоже очень удобно Короче, каждый свой огород хвалит Могу только добавить, что Tkinter - это python-ская обертка над TCL-ной библиотекой Tk, так что если знаком с последней, то будет совсем просто.

rosali

Ну имеется в виду если через интернет придется...

danilov

а wx - GTK.... (вроде).
Я насчёт tKintera не знаю, но wx vможно настроить на theme look...

sergey_m

А почему бы не обойтись просто tcl/tk? Я прекрасно понимаю, что на питоне легче. Но о юзере тоже надо подумать. Нафиге ему взгромождать на свою машину питон только для того, что бы заработало GUI к одной програмке.

rosali

Ну вообще-то да. Мне просто показалось, что тут user-а как такового и не будет, человек сам будет своей программкой пользоваться, или нет?

ppplva

Да ну, что это за юзер, который питон себе поставить не может.

rosali

Пфф, что это за разработчик, который заставляет юзера делать что-то кроме setup.exe? Ты еще README сделай: что в PATH прописать, что в реестр А если не расчитывать на (бестолковых) Windows пользователей, то что тогда означает "кроссплатформенность"?

Flack_bfsp

А почему не обойтись просто C++Builder-ом?

sergey_m

> А почему не обойтись просто C++Builder-ом?
Что бы был один и тот же GUI под вынь и под операционные системы. См. сабж.

Flack_bfsp

А ты в курсах, что на последнем Билдере получается один и тот же ГУИ для Винды, Линуха и Соляриса?

danilov

В линуксе питон стандартом стоит (если его силом не отключить, конечно).
А в винде его ставить не надо - тока интерпретатор переписать...
К тому же програмка будет весить колоибайт 5 + xml-файлик, который даже писать не придётся (всё сделает xrced)

sergey_m

> В линуксе питон стандартом стоит (если его силом не отключить, конечно).
Это проблемы твоего дистрибутива.

sergey_m

> А ты в курсах, что на последнем Билдере получается один и тот же ГУИ для Винды, Линуха и Соляриса?
Ссылку пожалуйста.
Бесплатен ли этот последний Билдер?
В курсе ли ты, что список операционных систем на ограничивается линухом и солярисом?

shlyumper

glade + gtk+ или аналогичное решение на qt чем не подходит? Под вынь оно замечательно соберется, что под MSVC, что под MinGW.

danilov

Чё-т не понял...
Человек, при установки линукса выбирает пакеты обычно исходя из стандартной установки.
А там питон включён... Неужели ты специально лез в Development, чтобы отключить его?
ЗЫ так на ASP и RH

Flack_bfsp

В курсе ли ты, что список операционных систем на ограничивается линухом и солярисом?
Представь себе, да! Но задача поставлена вполне конкретно - прога пишется на Линухе, надо запустить её для Винды. Ничего лучше Билдера в такой ситуации придумать нельзя. Раз уж используется С++.
Насчёт бесплатности - а у тебя все продукты на компе лицензионные? Если да, то флаг тебе в руки и качай триал-версию. Наваяешь что нужно и сноси её.
А вот тебе и ссылочка!

Julie16

А qt под винду уже можно свободно(бесплатно) получить? Про glade + gtk - ну это не серьезно.

ppplva

А нефиг, пускай ставят. Лень юзера не должна сдерживать научно-технический прогресс
Вполне, имхо, нормальная ситуация, когда программа тащит с собой какую-то либу в виде второго setup.exe. Все гамезы предлагают поставить ПрямойХ, и никто не жалуется.

sergey_m

Язык программирования не становится в один ряд с DirectX.

sergey_m

> Но задача поставлена вполне конкретно - прога пишется на Линухе, надо запустить её для Винды.
В сабже есть слово "кросс-платф". То, что ты не знаешь смысл этого слова мы уже убедились в других тредах.
> Насчёт бесплатности - а у тебя все продукты на компе лицензионные?
Да.

Flack_bfsp

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

ppplva

Не язык программирования, а рантайм.

sergey_m

> Не язык программирования, а рантайм.
Рантайм скриптового языка - язык.

shlyumper

А qt под винду уже можно свободно(бесплатно) получить?
" Qt for Windows is available under commercial (including academic) and educational licenses."
Думаю, educational license здесь будет вполне достаточно.
Про glade + gtk - ну это не серьезно.
Тпру. Речь идет не о разработке мегакрутого большого проекта, а быстро собрать простенькую форму:
Для этого нужно быстренько сделать какой-то простенький GUI, с 4 edit-box-ами, filedialog-ом и выводом результата.
Для этого glade/gtk+ самое оно, IMHO.

Landstreicher

Большое спасибо, что столько всего написали
Постараюсь ответить здесь всем:
1) по поводу кроссплатформенности. имеется ввиду только Windows и Linux, работоспособность под другие операционные системы (Solaris, QNX) пока не интересует
2) тулза предназначена в основном для внутреннего пользования. она пишется одним разработчиком для другого. как следствие, пользователь - не дурак, сам может поставить python, скомпилять итп. юзера как такового не будет.
3) вычисления и просмотр всегда делаются на одной машине (в частности, потому что нет второй машины работа по сети не предполагается и не нужна. тем более через интернет.
3) не вызовет ли качание больших данных через сокет заметных задержек? может лучше использовать какой-нибудь shared mem?
4) гонять лучше матрицу, а не картинку. не хочется осложнять код рассчета какими-то либами работающими с jpeg итп (сейчас пишет в pgm). вдобавок, в просмотре нужно 100% качество, сжатие с потерями не катит.
5) это не генератор фракталов
6) не хочется использовать closed-source программы (к c++ builder) по возможности, предлагайте программы на открытых лицензиях.
7) glade+gtk, qt, wx* - подходит идеально. именно их я и хотел с начала использовать. единственное, что я не работал ни с одним из них поэтому собственно и спросил. расскажите про плюсы и минусы каждой из этих библиотек.
8) qt для винды распространяется как-то странно (без сырцов, только для msvs6.0). работает ли оно если я для проги буду юзать msvs 7.0 или icc?

shlyumper

Еще, кстати, ссылка в тему.
http://freshmeat.net/articles/view/928/
Это к вопросу о Qt vs. Gtk+

durka82

Можно попробовать интегрировать вычислитель с прогой типа MatLab, Surfer и тп.
Но вот что там насчет доступности исходных кодов и работы под Линукс - не подскажу.

danilov

7. Могу только плюсы(минусы) по wxPython.
- нужно ставить (не стандарт)
- установка только tgz и rpm (по крайней мере у меня на //big-bug/from inet/)
+ хорошие доки
+ легко учится (- учить всё-таки надо)
+ легко переносится
+ легко создаются формы

Marinavo_0507

Запускать программу отдельным процессом и писать GUI на чём удобно.
Сокеты не нужны, если можно через командную строку, stdin/stdout и файлы всё передать.
Если нельзя, то нужны.
Вызовет ли "качание больших данных" задержку? Может быть, но уж точно на порядки меньшую, чем преобразование форматов перед визуализацией.

Julie16

Ае. http://www.trolltech.com/newsroom/announcements/00000192.html
Qt cross-platform development software will be available under the open source GPL license for open source development and a commercial license for commercial development
PALO ALTO, Calif. - February 07 2005
Trolltech®, a provider of leading application development software, today announced that it will extend its successful dual-licensing business model to include the Qt® cross-platform application development framework for the Microsoft Windows operating system. The availability of Qt for Windows under the open source GNU General Public License (GPL) will bring the benefits of open source software to the Windows environment, fueling the development of open source applications for the mainstream PC market. Qt for Windows is already widely used for commercial software development.
Очень радостная новость

bobby

вахххх, клево

bastii

qt рульная библиотека. А есть под нее какой-нибудь дизайнер форм? может есть какие-нибудь плагины под VC?

Julie16

1) qtdesigner
2) Вроде есть. Но точно могут сказать только те, кто юзал под VC. Я же только слышал.

ava3443

Сделал в своё время одной девушке с физфака прогу, рисующую всякие разные графики. Прога на Python + Tkinter, графики рисовал gnuplot, команды которому передавались через stdin. Очень удобно и лаконично получилось. Кстати, с установкой Python'а на комп научника она сама справилась без проблем.

Landstreicher

Сделал на Python + GTK. Интерфейс делается в Glade. Очень удобно, меня вполне устроило.

SvinkaVJeansah

Веб-интерфейс - самый простой кроссплатформенный ГУИ, если твоя задача укладывается в него без лишнего мозго*****а.

durka82

Веб-интерфейс - самый простой кроссплатформенный ГУИ, если твоя задача укладывается в него без лишнего мозго*****а.
... при использовании веб-интерфейса, написанного на голом html
Иначе проблемы обязательно будут

123456

у Tkinter есть минусы. можно глянуть в инете.
профессионально на нем не пишут: выглядит неродным и мало умеет.
преимущества: очень прост в изучении, входит в стандартный дистрибутив.
Оставить комментарий
Имя или ник:
Комментарий: