LINUX.ORG.RU

Какой графический стек выбрать для легкого и долговечного приложения

 , ,


0

4

Пытаюсь написать приложение. Пока все не зашло далеко, хочу начать прикручивать какие то гуи к нему. Вопрос в том, что использовать, если хочется: а) легкого и отзывчивого интерфейса, даже если он выглядит как из 90-х, б) кросс платформенности (нужно покрыть минимум луинуксы 2020+ и винду 8.1+), в) чтобы было максимально живуче, г) желательно, чтобы все это можно было реализовать на питоне, т. к. я других ЯП не знаю.

Какие есть варианты? Или я ищу то, чего не существует? Веб не предлагать, я его потыкал по советам (джанго и фласк), ужаснулся и ушел.

Чтобы был какой-то контекст, приложение для работы с БД (sqlite). По сути делает запросы, заполняет, делает аналитику на основе данных по кнопочке «Сделать анализ» и тому подобное. Все локально. Если совсем питон не пойдет тут, скажите, куда смотреть с учетом того, что осваивать это будет в свободное время непрограммист.

Перемещено hobbit из general



Последнее исправление: hobbit (всего исправлений: 1)

PyQt5/PySide

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

NorthernBlow
()

Веб не предлагать

Передумай. Это задача идеально подходящая для деления на клиент (браузер) и сервер (микросервис или база данных). Она будет потенциально жить очень долго, т.к. и ту и другую часть легко менять полностью и независимо, по необходимости переливая логику с клиента на сервер и обратно.

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

Дело не только в сложности этих фреймворков, но еще и в том, что нужна легковестность приложения. Запускать браузер для того, чтобы сделать простые манипуляции с БД? Мне кажется излишне, мягко говоря. Потом еще и по сто браузеров тестить на совместимость.

Entmatix
() автор топика

Если будете брать Tkinter (а для фронта к БД я бы его взял) смотрите на то какой импорт вам подсунут в туториале, потому что есть старая версия Tkinter которую до сих пор пихают в туториалы и новый Tkinter со свежим look&feel, импорты у них по разному называются (уж не помню как). Если нужно чтоб ещё и на Андроиде запускалось, то Kivy вам в руки.

mydibyje ★★★
()

лёгкое

долговечное

графический интерфейс

кроссплатформенное

приложение

Сплошные противоречия. Я даже не могу вспомнить что-то похожее из существующего софта.

vvn_black ★★★★★
()
Последнее исправление: vvn_black (всего исправлений: 2)

Напиши на ModernGL. Клёвый биндинг питона к OpenGL. Окно нарисует тебе, даже переливаться будет если для расчёта цвета пикселей прикрутишь синусоиду

NorthernBlow
()
Ответ на: комментарий от alex1101

Несмотря на всю несерьёзность ответа, у SDL есть все шансы оказаться самым долговечным вариантом для Линукса 😁

У SDL такие же приключения, как и у какого-нибудь GTK+.

Есть SDL1 на котором до сих пор куча софта, а есть SDL2 на котором тоже куча софта, и на горизонте маячит SDL3.

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

что нужна легковестность приложения. Запускать браузер для того, чтобы сделать простые манипуляции с БД?

Браузер всё равно уже стоит в любой системе (а в линукс их пихают по три штуки), поэтому его вес равен нулю в данном случае. И сетевой/интернет/смартфонный доступ тоже бесплатный получается.

Веб-серверную часть легко промоделировать на чём угодно, хоть Apache + PHP + SQLite, хоть Node.js в докере с MySQL, потом заменишь на что-нибудь, уже не суть важно.

И на будущее, вдруг программа дорастёт до уровня предприятия, тогда такое разделение позволит без труда подцепить её к энтерпрайз системе (типа 1С).

Зачем себя сразу загонять в прокрустово ложе? 🤔

raspopov
()
Ответ на: комментарий от LINUX-ORG-RU

Компилишься с ним в статику и всё или таскаешь с собой.

Это можно было относительно бескровно на SDL1 сделать, но с SDL2 куча трудностей.

EXL ★★★★★
()

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

Программа-максимум: попробуй поизучать плюсы. Да, надо будет везде явно объявлять типы (кстати, в Питоне, начиная с 3.5, это тоже можно делать), да, надо следить за тем, кто освобождает память, да, придётся привыкнуть к сумасбродной недомодульности. Зато ты сможешь писать код, который работает быстрее питонячьего во много раз (проверял). А QtCore добавит плюсам комфортную работу с юникодными строками и списками строк.

Ну а если тебе всё это сто лет не надо…

…программа минимум: оставайся на питоне, бери PySide2 (а если у тебя программа GPLная, можно и PyQt) и вперёд.

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

Сплошные противоречия.

Если брать самую древнюю из доступных версий Qt и учитывать совместимость кода с последующими кутями — вполне реально. Я так много лет тянул Qt 4.8, с поддержкой следующих до 5.15. Статический бинарь моего пет-проекта под винду с вкомпиленной Qt весит всего 10 метров, а для линуксов всегда можно подобрать совместимую версию Qt из системных реп. С переходом на Qt6 поддержку четвёрки, возможно, дропну (но это не точно). Так что на уровне лёгкости бинаря и долговечности исходников — вполне.

Есть, правда, нюанс, у меня это работает с плюсами. Получится ли так с питоном, не знаю, там ещё и версии самого питона придётся учитывать.

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

https://github.com/rtrussell/BBCSDL/blob/master/src/SDL2_gfxPrimitives.c

Ныне SDL2 перевел на C++ и на его основе (и не только ее) GUI для OpenGL разрабатываю (2D и 3D controls + графика).
Одна из фич будет в том, что диалоги и графические алгоритмы можно будет создавать на основе метаданных (они много функциональней чем xml, ... ).

Forum0888
()
Последнее исправление: Forum0888 (всего исправлений: 2)

нужно покрыть минимум луинуксы 2020+ и винду 8.1+

Это, кстати, жестоко. Есть полно людей с Windows 7 и Debian Oldstable.

P.S. Только заметил: при чём здесь General? Это, батенька, явный Development. Перенёс.

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)

Было очень сложно откопать это в памяти и истории сообщений когда племянник делал похожее приложение, но я нашел.

https://www.tryton.org/

// пс. когда я делал такое - я использовал PyGTK В процессе - домашнее задание по СУБД [ArchLinux][Рабочая обстановка]

ei-grad ★★★★★
()