LINUX.ORG.RU

Python GUI --- что выбрать?


0

0

поиском я уже искал ;)...

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

1. кросс-платформенность. чтоб на уровне питона не особо различать, в винде ты или под линуксом.

2. отсутствие необходимости пользоваться всякими визуальными построителями.

3. нормальная поддержка utf-8.

4. лицензионные грабли, точнее, их отсутствие.

предположительно pyGTK2 или pyWx...

заранее спасибо!

Я сам пока серьёзно написанием GUI на Питоне не занимался, только немного пробовал, ну и кое-что читал на эту тему. Если моё мнение интересно...

> 1. кросс-платформенность. чтоб на уровне питона не особо различать, в винде ты или под линуксом.

Здесь номер 1 --- Tkinter. Внешне выглядит везде одинаково, то есть не похож ни на что, только на себя самого :-) (вернее, на всё, основанное на Tk). Перенесён на всё, что движется, входит в стандартный комплект Python. Попробовать силы или написать прогу для личного пользования --- самое оно. Не слишком быстр.

Остальные (GTK, Qt, wxWindow, FOX и, соответственно, привязки к ним), IMHO, менее кроссплатформенны, но UNIX и Windows поддерживают, а больше обычно и не надо.

На уровне Питона, IMHO, нигде не различается, под какую систему пишешь, для того и делалось. Правда, один раз столкнулся с различием при использования Tkinter: под Линуксом он требовал строки в юникоде, а под Виндой в CP-1251.

> 2. отсутствие необходимости пользоваться всякими визуальными построителями.

Нигде не нужно. Кое для чего можно.

> 3. нормальная поддержка utf-8.

В Tkinter внутри всё в юникоде, или 16 или 32 разряда (смотря как скомпилировано). utf-8 воспринимает нормально. Вот как я устанавливал заголовок окна под Линуксом (в исходнике использовался koi8-r, соотвестсвенно переменная title --- строка в koi8-r):

tk.title(unicode(title, 'koi8-r').encode('utf-8'))

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

> 4. лицензионные грабли, точнее, их отсутствие.

Слышал только про Qt под Вынь. Остальные сочетания, вроде, без проблем.

------------------ Корольков Дмитрий

http://dkorolkov.by.ru

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

>> 1. кросс-платформенность. чтоб на уровне питона не особо различать, в винде ты или под линуксом.

>Здесь номер 1 --- Tkinter. Внешне выглядит везде одинаково, то есть не похож ни на что, только на себя самого :-) (вернее, на всё, основанное на Tk).

приложения с Tk-фейсом, которые я видел, плохо переносят изменение размеров окна.

>Остальные (GTK, Qt, wxWindow, FOX и, соответственно, привязки к ним), IMHO, менее кроссплатформенны, но UNIX и Windows поддерживают, а больше обычно и не надо.

мне кроме линукса и виндов ничего и не грозит ;). главное --- чтобы создавая интерфейс, не вспоминать всякий раз различия между WinGUI и LinGUI :).

>В современных версиях Питона, где можно указывать кодировку исходника, этих преобразований делать, видимо, уже не потребуется.

собс-но, что я и делаю ;). юзаю python 2.3

>> 2. отсутствие необходимости пользоваться всякими визуальными построителями.

>Нигде не нужно. Кое для чего можно.

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

>> 4. лицензионные грабли, точнее, их отсутствие.

>Слышал только про Qt под Вынь. Остальные сочетания, вроде, без проблем.

вот посему о QT я особо и не думаю...

сам я склоняюсь к pyGtk2. fox на данный момент не блещет поддержкой utf, wxWindows, если не ошибаюсь, имеют мелкие отличия в зависимости от того, поверх чего собиралась.

спасибо за ответ.

volonter
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.