Comments 24
UFO just landed and posted this here
По поводу дизайнера из всех мной перепробованных остановился на wxGlade. Правда, обычно я окно делаю дизайнером, потом удаляю весь его код, и, если нужно исправить окно, правлю код уже ручками.
> Иерархия следующая: Форма (wx.Frame) на ней расположен сайзер, в сайзер добавлен контейнер — панель (wx.Panel), на панели добавлен еще один сайзер, и уже в данный сайзер добавляются все элементы формы.
А зачем нужна промежуточная панель?
Код
можно переписать более красиво через super:
В этом случае, если изменится базовый класс, то не нужно будет его исправлять еще и в конструкторе. Заодно параметр self в __init__ можно будет не передавать.
> Иерархия следующая: Форма (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? Ну и сравнение с другими подобными библиотеками привести.
Красивее и сложнее. Это если совсем коротко.
wiki.wxwidgets.org/WxWidgets_Compared_To_Other_Toolkits
По мне, wx сильно отдает MFC, собственно у них похожий подход.
По мне, wx сильно отдает MFC, собственно у них похожий подход.
Для меня главный плюс wx в том, что при его использовании под разные системы интерфейс выглядит как родной, потому что использует родное API. А то жутко раздражают, например, GTK-ые диалоги открытия файлов под виндой.
GTK-ые диалоги открытия файлов под виндой
1.выглядят как родные(при использовании соотв.темы)
2. гораздо удобнее чем «родные»-например там есть закладки, командная строка и т.д.
1.выглядят как родные(при использовании соотв.темы)
2. гораздо удобнее чем «родные»-например там есть закладки, командная строка и т.д.
1. Этим должны пользователи озадачиваться?
2. Я все-таки предпочитаю, чтобы под виндой программа выглядела виндовой, а под линуксом — линуксовой.
2. Я все-таки предпочитаю, чтобы под виндой программа выглядела виндовой, а под линуксом — линуксовой.
1. Установщик gtk рантайма.
Озадачиваться чем?
Диалог открытия файлов мало чем отличается от стандартного, при этом имеет несколько очень удобных добавлений.
Мне кажется это совсем не принципиальный момент.
GTK runtime под windows по умолчанию ставит тему, которая эмулирует вид/цвет окон windows.
Pygtk очень простая и гибкая библиотека, код получается намного компактнее, при этом набор виджетов намного меньше, чем для wxPython.Функционал скромнее.Это может служить некоторым плюсом для wx. Но сам wxPython довольно объёмен, и API довольно многословные и не очень питоновские.
Диалог открытия файлов мало чем отличается от стандартного, при этом имеет несколько очень удобных добавлений.
Мне кажется это совсем не принципиальный момент.
GTK runtime под windows по умолчанию ставит тему, которая эмулирует вид/цвет окон windows.
Pygtk очень простая и гибкая библиотека, код получается намного компактнее, при этом набор виджетов намного меньше, чем для wxPython.Функционал скромнее.Это может служить некоторым плюсом для wx. Но сам wxPython довольно объёмен, и API довольно многословные и не очень питоновские.
1. Этим должны пользователи озадачиваться?
2. Я все-таки предпочитаю, чтобы под виндой программа выглядела виндовой, а под линуксом — линуксовой.
2. Я все-таки предпочитаю, чтобы под виндой программа выглядела виндовой, а под линуксом — линуксовой.
Думаю статью надо было начать с того, что такое wx.Python
habrahabr.ru/blogs/python/137369/
Собственно поэтому я и решил сразу в дебри.
Собственно поэтому я и решил сразу в дебри.
Продолжать статьи на эту тему или нет?
Есть еще такие элементы как дерево, popup окна, тул типы, rich text ctrl и еще много чего.
Есть еще такие элементы как дерево, popup окна, тул типы, rich text ctrl и еще много чего.
Разберем инициализацию формы:
self и parent мы уже разобрали. id — каждый элемент, окно имеет собственный id, чтобы обращаться к ней или присваивать ей действия, события, дополнительные элементы. Можно не заморачиваться с этим и ставить -1 или wx.ID_ANY — что формализует собой любой id (нет, id не берется случайно цифрой, это мнимый id).
Дальше читать пришлось себя заставлять. И где self и parent разобрали тоже не увидел.
Смысл, если есть официальный биндинг на Qt от Nokia, pyside? Его разрабатывает толпа народу, он есть под все платформы в виде удобный инсталляторов, он всегда синхронизирован с последней версией Qt.
Еще есть Boa Constructor — Python IDE — wxPython GUI Builder.
Проект довольно популярен, хотя последнее обновление от 2007-07-05.
Сам пользовал его для освоения wxPython на Windows и Ubuntu.
Все просто и удобно (для старта). Сейчас предпочитаю доделывать форму ручками.
Проект довольно популярен, хотя последнее обновление от 2007-07-05.
Сам пользовал его для освоения wxPython на Windows и Ubuntu.
Все просто и удобно (для старта). Сейчас предпочитаю доделывать форму ручками.
Sign up to leave a comment.
Сказ о wx.Python