Как стать автором
Обновить

Комментарии 24

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

> Иерархия следующая: Форма (wx.Frame) на ней расположен сайзер, в сайзер добавлен контейнер — панель (wx.Panel), на панели добавлен еще один сайзер, и уже в данный сайзер добавляются все элементы формы.

А зачем нужна промежуточная панель?

Код
class regexps ( wx.Frame ):
def __init__( self, main, schema, table, connection ):
wx.Frame.__init__ ( self, parent=None, id = wx.ID_ANY, ...)


можно переписать более красиво через super:

class regexps ( wx.Frame ):
def __init__( self, main, schema, table, connection ):
super (regexps, self).__init__ (parent=None, id = wx.ID_ANY, ...)


В этом случае, если изменится базовый класс, то не нужно будет его исправлять еще и в конструкторе. Заодно параметр self в __init__ можно будет не передавать.
Промежуточная панель между формой и элементами?
А зачем она нужна, когда для расположения элементов все-равно используются сайзеры.
Ммм, без панели все ваши элементы будут на форме, на темном фоне. Попробуйте создать фрейм и на него положить элементы в сайзере, увидите что получится.
Странно, я часто так делаю, и фон вроде нормальный, серый.
А можно кратко описать преимущества и недостатки wxPython? Ну и сравнение с другими подобными библиотеками привести.
Красивее и сложнее. Это если совсем коротко.
Для меня главный плюс wx в том, что при его использовании под разные системы интерфейс выглядит как родной, потому что использует родное API. А то жутко раздражают, например, GTK-ые диалоги открытия файлов под виндой.
GTK-ые диалоги открытия файлов под виндой
1.выглядят как родные(при использовании соотв.темы)
2. гораздо удобнее чем «родные»-например там есть закладки, командная строка и т.д.
1. Этим должны пользователи озадачиваться?

2. Я все-таки предпочитаю, чтобы под виндой программа выглядела виндовой, а под линуксом — линуксовой.
1. Установщик gtk рантайма.
Озадачиваться чем?
Диалог открытия файлов мало чем отличается от стандартного, при этом имеет несколько очень удобных добавлений.
Мне кажется это совсем не принципиальный момент.
GTK runtime под windows по умолчанию ставит тему, которая эмулирует вид/цвет окон windows.
Pygtk очень простая и гибкая библиотека, код получается намного компактнее, при этом набор виджетов намного меньше, чем для wxPython.Функционал скромнее.Это может служить некоторым плюсом для wx. Но сам wxPython довольно объёмен, и API довольно многословные и не очень питоновские.
1. Этим должны пользователи озадачиваться?

2. Я все-таки предпочитаю, чтобы под виндой программа выглядела виндовой, а под линуксом — линуксовой.
Промазал.
Думаю статью надо было начать с того, что такое wx.Python
habrahabr.ru/blogs/python/137369/
Собственно поэтому я и решил сразу в дебри.
Продолжать статьи на эту тему или нет?
Есть еще такие элементы как дерево, popup окна, тул типы, rich text ctrl и еще много чего.
Конечно. Думаю, Ваш опыт будет полезен многим.
Разберем инициализацию формы:
self и parent мы уже разобрали. id — каждый элемент, окно имеет собственный id, чтобы обращаться к ней или присваивать ей действия, события, дополнительные элементы. Можно не заморачиваться с этим и ставить -1 или wx.ID_ANY — что формализует собой любой id (нет, id не берется случайно цифрой, это мнимый id).


Дальше читать пришлось себя заставлять. И где self и parent разобрали тоже не увидел.
Смысл, если есть официальный биндинг на Qt от Nokia, pyside? Его разрабатывает толпа народу, он есть под все платформы в виде удобный инсталляторов, он всегда синхронизирован с последней версией Qt.
Кроме того, есть PyQt которому уже больше десяти лет. Не менее прекрасен :)
Еще есть Boa Constructor — Python IDE — wxPython GUI Builder.
Проект довольно популярен, хотя последнее обновление от 2007-07-05.
Сам пользовал его для освоения wxPython на Windows и Ubuntu.
Все просто и удобно (для старта). Сейчас предпочитаю доделывать форму ручками.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории