LINUX.ORG.RU

Простые библиотеки реализующие графический интерфейс в python

 ,


1

1

Под скажите подажулйста, есть ли простые библиотеки для создания граф. интерфейсов в python. Сразу говорю, qt, tkinter, gtk(Если конечно есть простая вариация GTK, то предлагать) не предлагать. В tkinter не хватает функционала, смотрю в сторону kivy, но не очень хочется юзать поскольку, всё таки программа не для мобильных девайсов. Если не найду ответа, то буду юзать либо ту библиотеку, либо буду юзать фрейм в tkinter и сделаю CLI интерфейс.

Ответ на: комментарий от enot_obrmot

Нет, как и для любого другого из тулкитов? Ты не умеешь читать документацию? Зачем тогда полез в программирование?

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

Какой смысл изучать Gtk, если её API кардинально меняется от версии к версии (т.е. каждые 1,5 года)? Это издевательство над собой, ментейнерами и пользователями.

Другое дело, что в слюниксе с десктопными тулкитами вообще беда: либо ломают каждый год, либо говнистые по 250Мб, либо убогие как калоши...

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

Другое дело, что в слюниксе с десктопными тулкитами вообще беда: либо API ломают каждый год, либо говнистые по 250Мб, либо убогие как калоши...

Ах, да - первый и второй пункт обычно ещё и вместе идут.

Novator ★★★★★
()
Ответ на: комментарий от Novator
-rwxr-xr-x 1 root root 1,5M Feb 11 02:25 /usr/lib64/libcairo.so.2.11600.0
-rwxr-xr-x 1 root root 488K Apr  8 09:07 /usr/lib64/libpango-1.0.so.0.5000.6
-rwxr-xr-x 1 root root 1,5M Apr  8 08:24 /usr/lib64/libglib-2.0.so.0.7200.0

Ну о чём тут речь вообще?

Про ломание API - бред, зачем на это вообще отвечать? В рамках мажорной версии API стабильно.

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

А есть gtk для тех, кому лень разбираться с гтк, типо изи гтк

А почему ты решил писать программу и почему выбрал именно питон, если не секрет?

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

1,5M, 488K, 1,5M

Разумеется, Gtk ставится тремя файлами (нет).

Про ломание API - бред, зачем на это вообще отвечать? В рамках мажорной версии API стабильно.

Разумеется, подумаешь каждый год нужно изучать новое говнище, тянуть по 300М сырцов, биндингов, конпилять, бороть глюки, пинать ментейнеров, слышать их «пошолнахи» и смотреть на исчезнувшие из реп приложения... Какой пустяк! (нет)

Для сравнения, в винде WinAPI десятилетиями не меняется - мои проги, скомпилированные 25 лет назад в Win98, сегодня запускаются в Windows 11. Это пример, как в реальном продакшене должна соблюдаться обратная совместимость.

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

Так что там по простым библиотекам? Только kivy? Да и вообще, как он лично для вас? Я пробовал написать на нём программу, но увы, идей нет для программ, просто хочу найти библиотеки графические. Для рандомной проги.

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

И кстати, хватит кривляться с «маленьким размером» Gtk
- только одни сырцы весят 27Мб - и это без кучи зависимостей:

wget -c https://github.com/GNOME/gtk/archive/refs/heads/main.zip
2022-04-29 20:30:27 (376 KB/s) - «main.zip» сохранён [27866910]

Если же начнёшь компилировать, то окажется, что ей нужны всякие новые GLibc, вейланды, DBus, системды и прочее-прочее на 5Гб и недели компиляции и ковыряния в этом всем новом-модном-молодёжном дерьме.

И самое главное - API будет сломана, и старые проги перестанут работать.

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

Так что там по простым библиотекам? Только kivy?

Kivy я не пробовал.
Изучал тему лет 10 назад, когда выбирал тулкит для своей проги. Мне тогда понравился FOX toolkit (и по размеру, и по изяществу API, и по красоте кода), но я выбрал Gtk2, т.к. думал что типа это «мейнстрим» и повелся на его внешние красивости. При этом я ещё тогда понял, что API у Gtk абсолютно хипстерский и дегенератский.

С переходом Gtk2->Gtk3->Gtk4 всё ещё сильнее ухудшилось, от API до зависимостей.

На днях пробовал FOX, на С++ он скомпилялся, но обвязка на Ruby не скомпилялась, а мне нужна именно обвязка. На Python'е обвязка для FOX вообще протухла лет 12 назад.

FLTK и Tk корявые и убогие как поленья. У Qt все проблемы Gtk, плюс непонятка с лицухой.

Поэтому сегодня я даже не знаю что посоветовать. Если найдёшь что-то лёгкое, красивое и стабильное, то отпишись на ЛОРе.

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

Хорошо. Ну kivy вроде красивый, как по мне, но там же ещё есть свой язык разметки, для более сложных интерфейсов.

enot_obrmot
() автор топика
Ответ на: комментарий от Novator

И кстати, хватит кривляться с «маленьким размером» Gtk

gtk бесплатный по размеру в Linux, как и Qt. Так как на популярных десктопных дистрибутивах они предустановлены, да именно оба тулкита, вне зависимости от DE. А всякий типа “легковесный" шлак это наоборот лишние зависимости для пользователя, так как они не установлены по умолчанию и пользователю придётся их установить из-за одной вашей проги и эти либы будут занимать лишнее место.

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

Ещё Wx в своё время неплохо выглядел - в каком он сейчас состоянии, я не знаю. Всё нужно ставить и пробовать, причём как в лине, так и в винде - это целое исследование, я тогда недели три потратил, сейчас желания повторять подвиг нет.

Кроме самого тулкита пробелема с обвязками. Когда разрабы тулкита начиинают ломать API, то обвязки, написанные обычно другими людьми, давно ушедшими, остаются заброшенными.

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

gtk.. Qt.. на популярных десктопных дистрибутивах они предустановлены

Предустановлены только новые версии с новыми API.
Многие проги с предыдущим API не конпилируются и исчезают из репов.

И плюс проблема с обвязками.

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

Разумеется, подумаешь каждый год нужно изучать новое говнище

Не хочешь - не изучай, никто не заставляет.

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

wxPython же.

Чуть сложнее tkinter. Кстати, а чего в tkinter не хватило?

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

и старые проги перестанут работать.

Я вот сейчас взял бинарный пакет GIMP, а именно gimp_1.0.0-1.deb (из «машины времени Debian»), распаковал и попробовал запустить. Бинарник пожаловался, что ему не хватает GTK1. Ну, взял оттуда же libgtk1_1.0.4-1.deb. Теперь не хватило libXi. Взял xlib6g_3.3.2.3-2.deb. Ещё взял libgimp1_1.0.0-1.deb. Конкретно его не просило, но наверняка GIMP захочет свои библиотеки, а в Debian они традиционно в отдельных пакетах. Так что пусть будет.

При запуске была проблема с настройкой ~/.gimp: скрипт для настройки не запустился автоматически, потому что я распаковывал пакеты не в /, а в поддиректорию. Запустил скрипт, он скопировал нужное из share.

И… древний GIMP запустился на текущем Debian testing. Метка времени на бинарнике GIMP — 3 июня 1998 года. Метки времени на библиотеках GTK+ — 2-3 июня 1998 года. Метки времени на библиотеках иксов — 12 сентября 1998 года.

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

i-rinat ★★★★★
()
Последнее исправление: i-rinat (всего исправлений: 1)
Ответ на: комментарий от eternal_sorrow

Где 250Мб?

Смотреть нужно правильно, а не так. 250 метров - это ещё очень оптимистично (ГТК3 ещё был около того), но неправда, к сожалению. Вот реальная оценка барахла, которое тянет за собой минимальный gtk хеллоу вролд из мануала:

$ pmap gtk_hello_world
...
 total           901656K

Для сравнения, приложуха с интерфейсом на ncurses:

$ pmap ncurses_app
...
 total            11392K

В 90 раз разница! Более того надо учесть, что во втором случае не просто хеллоу ворлд, а полноценная поделка, которая сама по себе что-то там мэпит в виртуальном пространстве.

В общем все эти ГТК/КТ и иже с ними - жирное и непротребное дерьмо. Могу отметить, что при переходе ГТК на 4 версию оно сильно пожирнело.

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

Могу отметить, что при переходе ГТК на 4 версию оно сильно пожирнело

А чем GTK4 лучше GTK3 для пользователя?
А для разработчика?

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

Черт его знает, я не стал брать в руки ГТК3, а уж 4 и подавно не стану. Так что не эксперт в сортах ГТК.

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

Я тоже решил, что буду пользовать Gtk2 до упора, а там.. «или ишак сдохнет, или падишах».

Novator ★★★★★
()
Последнее исправление: Novator (всего исправлений: 1)
Ответ на: комментарий от kvpfs
$ pmap gtk_hello_world
...
total           901656K

У меня на Debian testing на Sandy Bridge example-1 из Linux Ate My RAM занимает:

$ pmap example-1-gtk3
...
total           198164K

$ pmap example-1-gtk4
...
total           399532K
gag ★★★★★
()
Последнее исправление: gag (всего исправлений: 1)
Ответ на: комментарий от kvpfs

Смотреть нужно правильно, а не так. 250 метров - это ещё очень оптимистично (ГТК3 ещё был около того), но неправда, к сожалению. Вот реальная оценка барахла, которое тянет за собой минимальный gtk хеллоу вролд из мануала

Оказалось, что я и сам смотрел неправильно и не обратил внимание на одну «особенность» - подавляющее большинство в пространства процесса занято «защитными» страницами, они входят в эти 900. С поправкой на это, исправляю свой косяк:

$ pmap -d PID
...
mapped: 901524K    writeable/private: 101964K    shared: 4572K

101 метр под либы и всякие маллоки. Не 900 метров, конечно, но тоже неприлично много для окна с кнопкой.

PS: собирал через gcc -o hello-world-gtk 1.c `pkg-config --cflags --libs gtk4` , может там насувало каких лиших либ, хз.

kvpfs ★★
()
Последнее исправление: kvpfs (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.