LINUX.ORG.RU

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

 ,


1

1

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

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

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

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

?

Совершенно верно, могу:

Wayland: ваше мнение, впечатления, будущее? (комментарий) | https://i.imgur.com/wrO4HBs.png

Люди ещё в 80-ых написали эти приложения на WinAPI и в современной системе они получили поддержку современных фич.

И, заметь, без всякого мыла. Уровень осовремененности и обратной поддержки недостижимый не то что для иксового копролита, но и до относительно недавних Qt 4 и GTK+2.

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

PySimpleGUI предлагаю.

import PySimpleGUI as sg

sg.theme('DarkAmber')   # Add a touch of color
# All the stuff inside your window.
layout = [  [sg.Text('Some text on Row 1')],
            [sg.Text('Enter something on Row 2'), sg.InputText()],
            [sg.Button('Ok'), sg.Button('Cancel')] ]

# Create the Window
window = sg.Window('Window Title', layout)
# Event Loop to process "events" and get the "values" of the inputs
while True:
    event, values = window.read()
    if event == sg.WIN_CLOSED or event == 'Cancel': # if user closes window or clicks cancel
        break
    print('You entered ', values[0])

window.close()

Результат.

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

Так это же элементарно:

  • бутитесь с livecd с чем-то, к примеру с SystemRescueCD;
  • поднимаете Internet-через утилиты livecd, или ручками;
  • маунтите корневой своей системы куда-то;
  • если надо в /boot раздел с бутом маунтите;
  • chroot/arcchroot в примонтированный куда-то корень вашей системы;
  • устанавливаете ядро заново;
  • отмонтируете разделы, и ребутитесь;
lucentcode ★★★★★
()
Последнее исправление: lucentcode (всего исправлений: 1)
Ответ на: комментарий от enot_obrmot

Что люди только не придумают, чтобы не юзать более простые варианты, и не держать вторую систему… Сам такой же был, на arch перелез, а в системе был Debian(на всякий случай). Во второй раз когда на него перелезал, fallback был из Fedora.

В итоге понял, что я делаю что-то не то. Флешка с SystemRecueCD всегда под рукой, а корневая ФС Arch на BTRFS уже много лет. И я доволен как слон: снимаю с неё периодически снэпшоты, если что-то навернётся, я просто сделаю корневым снятый ранее снэпшот, загружусь в рабочую копию системы, и из неё 100% легко починю основную. Но, как-то так получается, что обычно этот снэпшот нужен только что-бы посмотреть как вернуть то, что я снёс сам по глупости, и как вернуть его назад со всеми правками конфигов и настройками.

Да, это так себе вариант, убогий до ужаса. Но, его плюс в том, что копию корневого снэпшота легко пожать и передать по сети, а иметь рабочий бэкап корневого со всеми пакетами и настройками - это удобно и круто.

В общем. Для любителей экспериментировать и ломать что-то у меня два три совета:

  • ФС, позволяющая снять легко снэпшоты с корневого системы без остановки ОС и ребута в другую ОС(или LVM, со снэпшотами LVM, если так любите старые ФС без CoW и снэпшотов);
  • флешка с SystemRescueCD(для арчеводов must have на случай факапов);
  • бэкапы рабочей системы не на вашем ПК(в дополнение к снэпшотам, не вместо них), вместе с важными для вас данными, на случай серьёзных факапов, когда можно потерять таки всё(SSD сломался, или ещё что случилось).

Но, и это варианты для ленивого. По хорошему все установки пакетов и их настройки нужно сразу оформлять так, чтобы вернуть всё, развернув минимально рабочую систему было проще простого. К примеру, с помощью того же Ansible и его playbooks.

P.S.: да, бэкапы важных данных с хомяков тоже лучше паковать, шифровать, и хранить где-то на сервере не в вашем регионе. На случай факапа… Очень иногда помогает вернуть всё взад.

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

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

Поправка, забыл про pip, но пока что попробую что то написать на kivy

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

На Хабре пишут, что PySimpleGUI через Tk отображается:
https://habr.com/ru/company/skillfactory/blog/538324/
только синтаксис вроде как упрощен и под питон адаптирован.

Там больше картинок и анимаций.

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

Вот блин, почему нет IDE которая сама придумает какую программу написать:), типо напиши калькуялтор, напиши велосипед, спиннер….

Помнится, в комплекте с обвязкой к руби (ruby-gtk2) шла куча примеров на все случаи жизни, я из них много чо почерпнул.

Подозреваю, что в твоей тулзе тоже примеры есть, только их нужно найти - посмотри список файлов, которые поставились, возможно в папке /usr/share лежат примеры.

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

Про языки программирования, поискал я их. И хочется уже сказать, да пошло это всё нафиг, пойду на асме писать, там проще всего. Ну всмысле комманд немного и всё можно реализовать прерываниями. :)

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

Мне вообще не понятно, как рядового пользователя привлечь к cli интерфейсу, им нужна красота, простота или что

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

А зачем «рядового» юзера к CLI привлекать?
Кесарю кесарево - хакеру хакерово.

Если ты такой юниксвейщик, то пиши CUI-прогу для кулхацкеров, а потом GUI-морду к ней «для быдла».

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

Недавно изучал существующие крипто-кошельки - большинство имеет такую структуру:
1) консольный кошелёк, например firo-cli
2) гуй, например firo-qt
3) сетевой демон, например firod
4) майнер, например firominer.

А более популярные ваще не парятся, например у Monero:
1) monero-wallet-gui
2) monerod
Консольная морда вынесена в «extras», а штатный майнер встроен в gui (или в демон, сходу не понял).

Я к тому, что Linux-мир, становясь массовым, тоже уходит от консолек в пользу графики.

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