jenyay.net
292 subscribers
153 photos
1 video
2 files
301 links
Программирование (в основном на Python, но не только), Open Source, а ещё сюда публикую новости своего сайта https://jenyay.net

Для связи с автором канала пишите на @jenyay
Download Telegram
Вчера вечером тихо и незаметно после нескольких лет разработки вышел релиз wxPython 4.0 - библиотеки для создания графического интерфейса на языке Python. Эта библиотека является обёрткой над библиотекой wxWidgets, написанной на C++. Одно из преимуществ этой библиотеки состоит в том, что в разных операционных системах библиотека использует "родные" элементы управления, поэтому приложения, которые её используют, не будут выглядеть чужеродно по сравнению с другими приложениями.

Самое главное изменение в этой версии - поддержка Python 3.x, но Python 2.7 библиотека по-прежнему поддерживает.

Уже пару месяцев я использую wxPython 4.0 beta, и впечатления от этой версии только положительные.

Теперь wxPython присутствует в PyPi, а это значит, что ее установка сводится к команде pip install wxpython. И это же позволяет использовать wxPython внутри virtualenv / venv.

Переход с wxPython 3.0.2 на 4.0 скорее всего не обойдётся без исправления некоторых участков кода, но в основном несовместимость с прошлой версией сводится к тому, что были переименованы некоторые методы, а некоторые классы были перенесены в другие модули.

Да, чуть не забыл. wxPython под Linux теперь поддерживает GTK 3.

#программирование #python #wxpython
Несколько дней назад вышла новая версия библиотеки для создания пользовательского интерфейса на Python - wxPython 4.2.2. Именно на основе этой библиотеки в OutWiker создается GUI. С момента предыдущей версии wxPython прошло больше года. На главной странице официального сайта почему-то еще нет новости о релизе, поэтому пока не знаю, что там поменялось, но как минимум теперь эта библиотека должна собираться для Python 3.12, а то с прошлой версией были проблемы. Еще я надеюсь, что в эту версию попало исправление, которое фиксило один неприятный баг с некоторыми юникодными символами. Из-за этого бага для сборки OutWiker под Windows я использовал пропатченную версию wxPython.

Еще новая версия wxPython символична тем, что незадолго до релиза основной разработчик Robin Dunn отошел от дел и передал права на проект другим наиболее активным разработчикам. Хочется надеяться, что релизы теперь будут выходить почаще.

#python #wxpython #программирование
👍3🔥2
Понадобилось мне для OutWiker сделать новый контрол для выбора цвета. Это должен быть выпадающий список (в простонародье - ComboBox), который вместо текста отображал бы прямоугольники разных цветов. Я очень не люблю делать свои контролы, но в какую сторону копать было понятно. Решил эту задачу переложить на братьев наших меньших (а в перспективе - больших), то есть на искусственный интеллект, и попросить его сгенерировать код.

Начал с Copilot. Результат меня прям очень впечатлил. Первоначальный запрос был такой:

"Напиши код компонента на Python с использованием библиотеки wxPython, который использует wx.adv.OwnerDrawnComboBox, чтобы выбирать цвет с помощью выпадающего списка. Каждый элемент выпадающего списка должен отображаться в виде прямоугольника своего цвета. Напиши код приложения, который этот компонент использует."


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

"Пусть теперь нулевой элемент будет обозначать "цвет по умолчанию" и выводиться текстом, а последний элемент списка - "Выбрать цвет" и тоже выводиться текстом."


Удивительно, но он сделал именно то, что я имел в виду. В процессе общения поправили некоторые мелочи, и оно заработало.

После этого мне стало интересно сравнить результат с другими нейронками. Начал с Яндекс GPT 4. Результат получился унылый. Работающего контрола от него я так и не добился. В выпадающем списке цветные прямоугольники он не смог нарисовать (хотя честно пытался, но все время что-то было не то).

Попробовал после этого нейронку от Сбера - GigaChat. С ним пришлось помучиться подольше, чем с Copilot, - приходилось часто указывать конкретные строки, где ИИ был не прав, и что там должно быть. Но в итоге контрол начал делать то, что от него требуется, хотя некоторые оформительские моменты придется за ним все-таки править руками. А на дополнительной хотелке нейронка ушла в бесконечный цикл и начала писать без передыху по три одинаковые строчки, которые к делу вообще не относятся. В другой раз по этому же запросу у нее перепутались код и комментарии к нему. Ну ладно, с бонусом она не справилась, но в целом тоже молодец.

Еще я на днях локально себе поставил опенсорсную нейронку Llama 3 (запускал через ollama). Код, который она генерила, тоже с ходу не заработал. Но еще у меня и комп для нее слабоват. Сначала ИИ отвечал относительно шустро, но если надо было исправить ошибку, то он начинал думать минут 10, и результат совсем не впечатлял. В общем, у меня не хватило терпения заставить эту нейронку написать рабочий код.

PS. Если кому интересно, то вот код, который в итоге получился у Copilot - https://paste.ofcode.org/FeqUr5LEeFdN7ugPLZyd3u . Для получения этого кода понадобилось 7 запросов.

Код, который получился у GigaChat - https://paste.ofcode.org/34C9mNhGke5cp967q53zgXQ . Сколько понадобилось запросов для получения этого кода не знаю, потому что история не сохранилась.

Для запуска этих исходников нужна библиотека wxPython.

#python #ии #программирование #wxpython
🔥5👍3