Пижамная обработка событий
Я испытываю трудности с пониманием системы обработки событий Pyjamas/GWT. В настоящее время я использую последнюю 0,8 пижаму для тестирования. Я не уверен, какой будет лучшая структура обработки событий, так как я никогда не занимался программированием GUI.
Мне не очень повезло с документацией, которую я нашел до сих пор. Кто-нибудь знает хороший справочник по пижаме или GWT?
Моя основная трудность связана с пониманием того, откуда приходят такие слушатели, как onClick, onMouseleave и т. Д.? Как они запускаются? Где они определены? Я их определяю?
Какова многоуровневая структура для системы обработки событий?
Я знаю, что это очень общие вопросы, но я просто ищу точку в правильном направлении.
Спасибо, и я ценю любую помощь, оказанную.
1 ответ
Я бы предложил вам изучить источник в папке примеров. Начните с этого http://pyjs.org/book/output/Bookreader.html
Есть несколько ссылок, которые мне пригодились: http://gwt.google.com/samples/Showcase/Showcase.html
Также в папке примеров есть отличный пример, который называется showcase
который дает вам все API и некоторые полезные примеры кода /localhost/somedir/showcase/output/Showcase.html
Поскольку API похожи, вы всегда можете проверить их книги (особенно полезно для понимания обратного вызова и т.д..):
для Джанго и Пижамы http://www.derekschaefer.net/2011/02/08/pyjamas-django-pure-win/
Однако я согласен, что существует большая потребность в лучших вводных уроках, помимо примера "Привет, мир". Я борюсь с этим сам. Удачи
пс. Я создал небольшой пример обратного вызова, который, кажется, работает. Было бы здорово, если бы люди поправили меня и отредактировали этот пример, чтобы он был более полезным для людей. Все, что я пытаюсь сделать здесь, это иметь навигацию с 2 страницами (представленными 2 классами: Intro и Outro)
импорт pyjd из pyjamas.ui.VerticalPanel импорт VerticalPanel из pyjamas.ui.RootPanel импорт RootPanel из pyjamas.ui.SimplePanel импорт SimplePanel из pyjamas.ui.DockPanel импорт DockPanel из pyjamas.ui.Hyperlink импорт гиперссылка на Pyper.Bypper.it из pyjamas.ui.HTML импорт HTML из пижам импорт класс окна Сайт (SimplePanel): def onModuleLoad(self): SimplePanel.__init__(self) self.panel = DockPanel() self.intro = Intro() self.outro = Outro() self.index = HTML('index') self.curPage = self.index vp=VerticalPanel() vp.add(self.index) self.link1 = гиперссылка ('пункт меню 1') self.link2 = гиперссылка (' пункт меню 2') self.link1.addClickListener(getattr(self, 'onLINK1')) self.link2.addClickListener(getattr(self, 'onLINK2')) self.panel.add(self.link1, DockPanel.WEST) self.panel.add(self.link2, DockPanel.WEST) self.panel.add(self.index, DockPanel.CENTER) RootPanel(). добавить (self.panel) def onLINK1(self): self.panel.remove(self.curPage, DockPanel.CENTER) self.panel.add(self.intro, DockPanel.CENTER) self.curPage = self.intro def onLINK2(self): self.panel.remove(self.curPage, DockPanel.CENTER) self.panel.add(self.outro, DockPanel.CENTER) self.curPage = self.outro class Intro(SimplePanel): def __init__(self): SimplePanel.__init__(self) self.vp = VerticalPanel() self.html = HTML('Это intro') self.button = Button(' нажмите меня ", self) self.vp.add(self.html) self.vp.add(self.button) self.setWidget(self.vp) def onClick(self): Window.alert('onClick Intro') класс Outro(SimplePanel): def __init__(self): SimplePanel.__init__(self) self.vp = VerticalPanel() self.html = HTML('Это outro') # мы можем сделать это следующим образом self.button1 = Button(' нажмите me1', getattr(self, 'onBUTTON1')) self.button2 = Button('click me2') # или настройте прослушиватель self.button2.addClickListener(getattr(self,'onBUTTON2')) self.vp.add(self.html) self.vp.add(self.button1) self.vp.add(self.button2) self.setWidget(self.vp) def onBUTTON1(self): Window.alert('привет от кнопки1') def onBUTTON2(Я): Окно.alert('hello from button2'), если __name__ == '__main__': pyjd.setup('./Site.html') app = Site() app.onModuleLoad() pyjd.run()