LINUX.ORG.RU

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

 ,


1

1

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

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

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

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

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

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

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

Novator ★★★★★
()

В tkinter не хватает функционала

Так это же обёртка над tk/tcl, а там можно делать достаточно заморочные интерфейсы, чего не хватает то?

einhander ★★★★★
()

Ты не написал чем не подходят qt, gtk. Как-то есть ещё биндинги с wx и fltk, и наверняка ко всяким менее известным тулкитам.

сделаю CLI интерфейс.

Вообще-то с этого нужно начинать. И может GUI тебе вообще не нужен, и можно сделать TUI на textual, например.

slovazap ★★★★★
()
Ответ на: комментарий от 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 ★★★★★
()

Что же выбрать…

Из года в год перед начинающими Linux-разработчиками встаёт вопрос о выборе простенького графического тулкита для написания мордочки к своему скрипту или наколенной утилитке. Да такого, чтобы быстренько накидал/написал формочку и всё с полпинка заработало в любых десктопных дистрибутивах Linux и не тянуло 100 МБ библиотек для приложения-кнопки. Вот только… такой серебрянной пули до сих пор в мире Linux’а нет.

А виной всему… иксы. Да-да, вы не ослышались, именно иксы. Потому что они могли стать аналогом WinAPI в мире десктопных UNIX-like систем, но стали их посмешищем и надгробием.

Если бы сейчас Xt/Xaw был бы современным аналогом WinAPI, а иксы не выкидывали на помойку, то ТС написал бы что-то вроде:

from Xt import *
from Xaw import *

app = XtApplication([])
button = XawPushButton('Click')

def clicked():
    alert = XawAlert('Done!')
    alert.exec()

button.clicked.connect(clicked)
button.show()
app.exec()

И получил графическую оболочку к своему скрипту, которая запускалась бы на всех современных дистрибутивах, умела в системную тему дистрибутива, поддерживала 4K и HiDPI и т. д. и не имела никаких дополнительных зависимостей.

Но из-за изначальной убогости иксовых тулкитов, которые забросили и перестали развивать, на свет появились GTK+ и Qt, и теперь чтобы решить эту элементарную задачу ТС должен будет превозмогать доброй сотней дополнительных либ и мегабайтов.

Так что пожелаем ТС удачи, она ему точно понадобится вне зависимости что он выберет: GTK, Qt или Tk. Любой его выбор будет наполнен сплошными компромиссами.

EXL ★★★★★
()
Последнее исправление: EXL (всего исправлений: 2)
Ответ на: комментарий от 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

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

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

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

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

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

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

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

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

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

Novator ★★★★★
()
Ответ на: комментарий от 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)
Ответ на: комментарий от EXL

Потому что они могли стать аналогом WinAPI в мире десктопных UNIX-like систем, но стали их посмешищем и надгробием.

Можно подумать WinAPI не посмешище и надгробие

В обычном винапи ты можешь написать такой же простой код и получить:

1. Системную тему
2. 4к и HiDPI

?

Нет, потому что винапи такое же посмешище и надгробие как и X

из-за изначальной убогости иксовых тулкитов, которые забросили и перестали развивать, на свет появились GTK+ и Qt, и теперь чтобы решить эту элементарную задачу ТС должен будет превозмогать доброй сотней дополнительных либ и мегабайтов

Угу, и GTK+ лишь усугубили проблемы X, а Qt стали образцом толстожопой жыртрености.

Все что надо было делать GTK+ в свое время это фиксить баги GTK2 НЕ ЛОМАЯ API, при этом под капотом добавить HiDPI

BUT NO, WE WILL DELIVER ONLY SUFFERING TO OUR USERS AND DEVELOPERS, VIVA GNOME3!

reprimand ★★★★★
()