LINUX.ORG.RU

Выбор технологии для построения GUI

 , , ,


0

2

Всем привет! Необходим совет по выбору GUI для локального приложения.

Есть некоторое приложение, написанное на R. Это научно-вычислительное приложение, которое делает вполне конкретные задачи (т.е. считает определенные статистики, строит определенные регрессии и т.п.). Основной упор делается (к сожалению) не на сложных и тяжелых расчетах, а на GUI: нужно, чтобы пользователь (ну, типа «макака»простой пользователь) выбирал определенную кнопку, и ему вываливался конкретный ответ (что-то похожее делают бизнес-аналитики).

Теперь этот софт наказано переписать под Python, и тут встал вопрос касательно UI тулкита. На R приложение строилось на основе Tcl/Tk, поскольку это оказалось быстрее и проще. Но теперь надо работать с привлекательностью для пользователя, и я не могу выбрать: либо продолжать костылять на Tkinter (его я не знаю, что концепцию Tcl/Tk знаю, так что в принципе освоить там наверное даже нечего =) ) или взять Django (читал где-то, что есть истории успеха.

Что посоветуете?

Примерный список задач:

  • Приложение должно показать меню, где будут для пользователей кнопочки. Каждая кнопочка – конкретная функция.
  • Пользователь работает с массивом данных. Соответственно будет делаться механизм для просмотра структуры данных (что-то типо Excel, только лучше бы более интерактивное)
  • У пользователя будет много радио-батонов, листов, полей для ввода и т.д.
  • Обязательным элементом является (конечно же) вывод результатов анализа + красивая визуализация (что-то типо ggplot2 в R вперемешку с googleVis для мега-интерактивного отображения).

    Что лучше взять таки: Tkinter, Django (хотелось бы именно на нем; тогда вопрос, насколько предлагаемое туда можно внести) или что-то другое?

    Спасибо заранее!

Так речь идёт о desktop-GUI или о webUI?

PS: Qt

RazrFalcon ★★★★★ ()

Теперь этот софт наказано переписать под Python, и тут встал вопрос касательно UI тулкита.

PyQt 5

Sunderland93 ★★★★★ ()

бери PyQt (PySide), не пожалеешь. Куча туториалов, советов и т.п., продвинутый тулкит, работает везде (даже на кофеварке)

Sahas ★★★★★ ()

Пиши лучше на C# и xamarin, всё-равно с гибелью убунты популярность линукса идёт на спад, писать гуи на питоне - тот ещё ад, если уж и брать, то биндинги к Qt.

Писать веб морду к серверу на питоне - идея нормальная, если на питоне крутится бизнес логика, но не числодробилки для аналитики, т.к. всё-равно всё придёт в точку, когда поймёшь, что надо было писать через ajax одностраничник. А там уже пофиг - джанга или фласк, имхо, джанга хороша только своим orm и «всё в одном», для rest в формате одностраничника лучше брать flask, или другие микрофремверки на питоне.

menangen ★★★★★ ()

PyGTK, PyQt — по вкусу.

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

Речь идет о ГУИ как таковом :)

Есть требование: сделать так, чтобы выглядело гламурненько и работало автономно на компьютере пользователя. Ну и имело портативность =)

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

Пиши лучше на C# и xamarin

Я бы с радостью на C#, но у меня ТЗ – только питон. На R забрали результат и остались довольны =).

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

PyQt 5

А кстати там действительно нужно качать Qt целиком (тот инсталлятор)? Или есть возможность поставить только pyqt в обход тому монстру из всего?

Или можно найти модули? (желательно к Spyder IDE)

bookman900 ★★★★★ ()
Последнее исправление: bookman900 (всего исправлений: 1)
Ответ на: комментарий от Sahas

бери PyQt (PySide), не пожалеешь. Куча туториалов, советов и т.п., продвинутый тулкит, работает везде

Я его смотрел давно. Только меня напрягают аспекты, связанные с установкой оно на пк. Не могу найти дистрибутив.

Я знаю, что Spyder IDE имеет какие-то инструменты для работы с PyQt( Spyder сейчас вошел в состав Anaconda).

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

всё-равно с гибелью убунты популярность линукса идёт на спад

я пропустил какую-то новость? проект закрыт?

I-Love-Microsoft ★★★★★ ()

если ты смотришь в сторону джанги, то для веба бери ReactJS

bvn13 ★★★★★ ()

Пожалуйста, не делайте webUI для десктопных приложений

Это плохо смотрится и неудобно работает. ПК не сводится к браузеру.

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

Я его смотрел давно. Только меня напрягают аспекты, связанные с установкой оно на пк. Не могу найти дистрибутив.

во всех нормальных ОС устанавливается без проблем через штатный пакетный менеджер

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

Всё время проигрываю от того, что инсталлятор двух кнопок на Python + PyQt + Qt + QML весит в три раза больше чем эти же две кнопки на JavaFX + JRE внутри инсталлятора.

И запускается раза в два дольше.

EXL ★★★★★ ()
Последнее исправление: EXL (всего исправлений: 1)
Ответ на: комментарий от bookman900

А кстати там действительно нужно качать Qt целиком (тот инсталлятор)?

Нет, из репов поставьте python3-pyqt5 он подтянет что нужно

Sunderland93 ★★★★★ ()

Все в курсе, что TkInter стремно выглядит только в иксах? Так что, я бы не парился и брал его

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

Все в курсе, что TkInter стремно выглядит только в иксах?

Он везде стрёмно выглядит.

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

всё-равно с гибелью убунты популярность линукса идёт на спад

Ты мне два новых монитора должен. Два. Они оба забрызганы без вероятности восстановления.

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

Нет, просто этот регистрант решил задать новый эталон толщины.

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

Спасибо. Выглядит также вкусно, как и Qt. Но с заделом на будущее.

bookman900 ★★★★★ ()

Это плохо смотрится и неудобно работает. ПК не сводится к браузеру.

Я согласен. Но в случае с R долго упрашивал Заказчик на Shiny-подобной платформе делать. Еле отговорили. R не всегда устойчиво сам по себе работает, а еще пихать webUI....

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

Как нативные виджеты в оффтопике, нарисованые Tk, выглядят стрёмнее, чем нарисованые c#???

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

А JavaFX выглядит под линуксом достойно? Не хуже Winforms?

menangen ★★★★★ ()

ТЗ – только питон

Ты бы уточнил, что им всё-таки надо. А то я думаю, что если выкатить python/Tkinter вместо Tcl/Tk то вангую, что это не то, что от тебя хотят.

no-such-file ★★★★★ ()
Ответ на: комментарий от no-such-file

А то я думаю, что если выкатить python/Tkinter вместо Tcl/Tk

Заказчики (что ожидаемо) никак не программеры. Питон нужен. Вот с Tkinter вопрос. Tcl/Tk работает у них (есть похожая прога написанная на R), но их теперь интересует «красивый интерфейс». Они хотят питон + UI на «мое усмотрение». А тут вопрос. Я хотел еще на этапе реализации приложения на R запедалить на Shiny, но не хватило по графику времени. Сделал на Tcl/Tk. Но выглядит в x.org не алё (особенно в маках, где xquartz фигово может в темы).

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

Если есть рабочее на tcl/tk то можно на Ttk стили настроить. Что ща целевая ОС?

silver-bullet-bfg ()
Ответ на: комментарий от menangen

Python лучше вообще никогда не брать. Особенно для серьезных вещей. Flask - УГ и багонуте поделие (2 года опыта работы если че), Django - избыточный кусок ненужно для тех, кто слишком ленив чтобы писать код (изкоробки почти все). Думать на ней тоже не особо надо. Qt тоже ненужно, даю 100% в гору, что он будет избыточен. Поэтому бери Tk. Хочется свистелок и перделок - Xamarin или JavaFX. Не слушай наркоманов

silver-bullet-bfg ()

Я думал сначала посоветовать остаться с Tk, потому что UI уже есть и тебе может быть эффективнее его допиливать. Но потом подумал, что твой заказчик посмотрел на тот UI, что есть, и подумал, что это типа родной для R тулкит. Поэтому и попросил переписать на Python.

Qt не серебрянная пуля. В визуализационном софте тебе всё равно придётся писать всё на своих виджетах. Так что я бы взял то, что удобнее тебе и с чем больше знаком.

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