QA Fest — конференция №1 по тестированию и автоматизации. Финальная программа уже на сайте >>
×Закрыть

Python GUI

Чи є тут такі, хто писав GUI на Пайтоні? Якщо є, то які Пайтоні встав бібліотеки чи фреймворки ви використовуєте, які їхні плюси та мінуси? І який краще використати для написання GUI для проекту де буде редагування, читання, створення даних у реляційних базах даних? Думаю між PyQT та Tkinter, якщо порадити ще щось, то буду дуже вдячний:)

LinkedIn
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Весь софт з гуями написаними на пітони виглядає як лайно і палиться за півкілометра.

В мене все.

интересно послушать ваш вариант (popcorn)

хаха. предлагаешь это формошлепным хомячкам?

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

У новому випуску Python дайджесту автор порадив до цієї теми: julien.danjou.info/...​-and-the-buffer-protocol

Написание питоногуя с использованием PyQt — это как взять всё худшее от обеих миров: динамическую типизацию от питона, отсутствие проверок памяти от C++ и еще сверху веселые приколы, когда через void* перепихивается указатель на питонообъект, а также веселуха с отладкой (ехал питон через цепепе)

Это не PyQt проблема. Это дурь Гвидо. Более укуренной связки с С++, чем у Питона я еще не видел.

Писал сначала на wxPython мелкие десктопные приложения с ГУИ. Но по том там вылезла, уже не помню какая, ограниченность перешел на PyQT. Единственное что 100-200мб размер простенького приложения на машинах где нет Python с необходимыми библиотеками.

Gtk и pygobject, еще нужно twisted(как вариант) для асинхронности подключить. Так можно писать легковесные кросплатформеные приложения. В Gtk реализована поддержка css, есть glade — конструктор интерфейсов, есть собственный инспектр (нападобии браузерного). Минус — мало примеров. Хорошие практики использования нужно искать в open source проектах.

pyside2 сейчас стал официальным от Qt, так что можно его использовать.

Думаю між PyQT та Tkinter, якщо порадити ще щось, то буду дуже вдячний:)

wxPython можно еще рассмотреть.

Залежно на скільки складний GUI тобі треба.
Якщо якісь важкі елементи — Python QT.
Якщо яка проста форма і кілька кнопочок — tkinter. Для елементарних речей існує навіть Tkinter-конструктор, у якому ти розставиш собі елементи, а він тобі код накидає.

Мне больше нравится идея использовать браузер как GUI

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

а еще перформанс веба как гуи это катастрофа

ага а еще я твой рам омномном сказал хромиум

По моему браузер идеальный GUI, с гораздо большими возможностями чем любая другая альтернатива.
И по любому нужно учится делать интерфейс, все стандартные элементы — кнопочки , ввод текста и т.д. и т.п.
Чем учить какую-то экзотику, использующуюся очень малым процентом программистов, и совершенно невостребованную работодателями — лучше веб изучить (если вдруг до сих пор не знаешь).

браузер идеальный GUI

Есть такое мнение, но я с ним не согласен.

Потому что веб — это адовое наслоение из говнотехнологий. Один только факт необходимости поддерживать кроссбраузерность и связанной с этой пикселеметрией современных веб аппок говорит о том что веб как сумма технологий в принципе ущербен. То, что все на него подсели, это не говорит о том, что он хорош. У него есть просто одна-единственная киллер-фича — нет необходимости установки специального клиента. Это открывает для бизнеса возможность делать хомяко-адаптированный софт. Все остальные технологические возможности веба — лютое говнище. Прекраснейший цсс, стабильный и надежный жабаскрипт, великолепный хтмл.

И наоборот, десктопный гуй имеет другие недостатки, но не имеет недостатков веба.

Да, именно из-за єтих веских причин на рынке столько легких кросс-платформенных десктопных приложений на Qt а особенно в связке с питоном.....

на рынке столько легких кросс-платформенных десктопных приложений 

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

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

А есть еще одно сфера — узкоспециализированный корпоративный софт. Типа медицина/космос/наука/производство/логистика/тп. Этот рынок не светится на конференциях типа «смотрите, мы сделали новый ЖС фреймворк и нарисовали офигенную кнопку», и не создает хайпа, но он большой. Там вообще десктоп рулит безраздельно. Есть компания, называется Gluon. Они занимаются разработкой и консультирование по десктопному гую на JavaFX, и нехило вкладываются в OpenJFX. И они говорят «тупиковый» десктопный гуй и запрос на него растет постоянно и интенсивно.

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

андроид эмулятор написан гуглом на кьют

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

В облачном куске — Visual Studio Code
Не хочу поднимать холивар но Ваша категоричность несколько обескураживает.... Ибо кусок, как вы говорите говна, а именно Java(name-it) тоже так себе ГУИ... ну а слепить ченить вменяемое на Qt отредактировав пару сотен XML templates то еще удовольствие. Ну а насчет корпоратива то там выбор продукта идет совсем не принципу «єта технология подходит нам больше».... пообщайтесь пару лет с CTO/CEO отвечающих за уровень «Страна» или «Европа» и вопрос на чем построена Апп вообще не будет подниматься....

слепить ченить вменяемое на Qt отредактировав пару сотен XML templates

шта?!?!

Qt Designer stores forms in .ui files. These files use an XML format to represent form elements and their characteristics.

Из моего опыта (Qt ~4) правили .ui

Qt Designer — это графическая тулза для редактирования интерфейсов мышкой. Причем тут

отредактировав пару сотен XML templates

При том что WYSIWYG нормальных нет ни для Qt ни для HTML и всегда нужно допиливать напильником, можно и код сгенеренный, конечно, править

При том что WYSIWYG нормальных нет ни для Qt

шта?!?!

и всегда нужно допиливать напильником

А можно пример допиливания напильником .ui файлов? Просто интересно, что подразумевается под «допиливанием».

You should try XAML to understand the beauty of Qt *.ui :) In any case, they are deprecated and one may prefer to use QML instead. There is no XML there.

Я — СЕО, отвечающий за Европу! Подтверждаю — веб говно. Даёшь возрождение флэша.

В облачном куске — Visual Studio Code

Нет, не в облачном. Электрон != веб, хотя похож. Внутри вашего VS Code есть разнообразные электронные API для IPC, доступа к ФС и более-менее нативного look & feel. Веб так не умеет и не сумеет ещё лет 20.

Именно , но просто обсуждение с’ехало в web-технологии == окно браузера. Что не верно. потому и привел в пример web-технологию. Хотя VSC тоже так-себе пример (там от електрона уже рожки да ножки, но тем не менее єто всеже десктоп приложение на web-технологиях). Ну а в контексте темы для python что Qt что Electron применимы одинаково — никак

web-технологии == окно браузера

В контексте юая это так и есть. Мы сейчас нетворкинг и дистрибьютед системс не обсуждаем, которые типа тоже веб.

в пример web-технологию

Какую? Электрон? Говно еще хуже чем окно браузера.

Говно

Тормозит при отправке хттп реквеста. Мемори лик при отправке хттп реквеста. Это можно невозбранно наблюдать при работе хромиума. Который сам по себе говно.

Который сам по себе говно.

Убийственный аргумент. И ведь не поспоришь...

Тормозит при отправке хттп реквеста. Мемори лик при отправке хттп

Пару ссылок?

И ведь не поспоришь...

А есть желание? Того, что про говнистость хрома снимают видосы и генерят мемасики, недостаточно?

Пару ссылок?

Личный опыт использования постмана. Пары тысяч хттп-запросов == електрон занимает 4гб рам. ЧЕТЫРЕ ГИГАБАЙТА РАМ. Он просто отправлял хттп и проверял жсончики. Даже никакой отрисовки гуя. Просто прогон коллекции запросов.

Postman: 5000 запросов, 453М в топе в окне с тестами, общая память приложения ±200М с _отрисовкой_ ГУя prntscr.com/mmryc5

Может в тестах лик таки?

говнистость хрома снимают видосы и генерят мемасики,

Такие? youtu.be/_6xxo6VbNMU

Попытка уныло петроснуть засчитана, но нет, не такие.
Вот такие
www.youtube.com/watch?v=X6xddQI1fyQ

Ага. Мемори лик в операторе == в жаваскрипте.

а именно Java(name-it) тоже так себе ГУИ...

Пруф, аргументы или слив.

Ну а насчет корпоратива то там выбор продукта идет совсем не принципу "єта технология подходит нам больше"....

Гыыы, лол.

prntscr.com/mmomoq
RAM голий Idea — 1,2Г VSCode+plugins(electron related dev) = 395М
В обоих _пустой_ проект

Єто про «так себе гуи» и «елетрон жрет память». Из МНЕ известных ГУИ на Яве которые работают для меня вменяемо IntelliJ-продукты единственные. Есть еще на GUI на Java для сравнений?

ГУИ на Яве которые работают для меня вменяемо IntelliJ-продукты единственные

у вас странные представления о вменяемости

Приведите примеры в пределах Вашего представления о вменяемости.

не только. гуглите language servers

Я имею ввиду что сам QtCreator єто не Java-GUI

ява гуи ничем мне лучше електрона

На вкус и цвет все фломастеры разные.... в Qt наверняка тоже свои тараканы, может меньше конечно....

Есть еще на GUI на Java для сравнений?

jaxenter.com/...​-applications-123653.html
www.quora.com/...​ications-made-with-javafx
Это так, полминуты гугла. Еще вопросы?

Сравнимо с electronjs.org/apps . Так себе списочки кстати....

Сравнимо

И близко нет.

Так себе списочки кстати....

Яснопонятно, сказать нечего, уйдем в отрицание

Не знаю, в большиснтве случае если есть web и desktop, я буду пользоваться desktop больше в виду ущербности web. Telegram-клиент, discord, slack, skype, viber как минимум выбор однозначный. Из web я больше пользуюсь только gmail приложением и всё. А так

(1) Минимизация в трей, индикация, полупрозрачность, иконка и прочие плюшки (2) Файловая система (3) Графика (4) Многопоточность...

Ну матчасть-то учите ... Slack => electron->chromium , практически весь список єто web-view а значит web-техноголия.... не нужно путать web-технологю для ГУИ и веб-сайты

Ok, вопрос о том, почему в Slack нельзя ресайзить колонки по ходу снят :)

Но viber и telegram это Qt.

Slack => electron->chromium

не всегда

И что там у тебя с видеоконференциями и шарингом экрана? Сделал уже?

Сделал уже?

нет и не буду. обсуждали уже

нет и не буду

Мне такое не нужно.

Телеграм клиент лютое говно по функционалу и поддержке юзеров от разработчиков, но относительно быстрый. Дискорд, Слак — электрон (флеш 21 века), но хотя бы с фичами. Скайп 8 — худшее от всех миров, дно. Вайбер хз. Вацап десктопный просто говно и крешится раз в день на любой машине, и фич нет как и в телеграме.

Велком во время появления аськи. Цикличность-с развития по марксистам.

Телеграм клиент лютое говно по функционалу

Телеграм клиент — самый зе бест месенжер из всех доступных. Ничего лишнего, только то что нужно. Приятен глазу и в использовании. Фичей не надо.

Нет групповых видеозвонков. Еще даже не дорос до Скайпа времен до покупки его мелкомягкими.

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

у скайпа, кстати, тоже не очень

у скайпа вообще все было ниочень

Сейчас Скайп — уже труп.

подавай по щелчку пальцев

Не надо по щелчку, но они нужны. И я знаю, что это сложная задача, но протокол Слака в этой части закрытый?
Если закрытый, то задача реально сложная. Особенно видеоконференции.
Но и телеграм как бы большая контора — потянуть может в теории.

но протокол Слака в этой части закрытый?

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

Ясно. ;). Т.е. либо самому всё делать (но тогда и слак нафиг не упал) либо не делать.

Т.е. либо самому всё делать

я тебе предлагал чтото делать самому?

Такое вообще. Телеграм и не позиционирует себя как тулза для видеоконференций.

На питоне гуй пишут редко, ибо есть веб. Если что-то сложное тебе надо, то QT, нет — и TKInter подойдёт

Подписаться на комментарии