Различия
Здесь показаны различия между двумя версиями данной страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
fullcircle:31:python_ч_5 [2010/06/12 10:36] |
fullcircle:31:python_ч_5 [2011/02/20 16:25] (текущий) |
||
|---|---|---|---|
| Строка 3: | Строка 3: | ||
| //Автор — Грэг Валтерс (Greg Walters)// | //Автор — Грэг Валтерс (Greg Walters)// | ||
| </style> | </style> | ||
| + | |||
| - [[..:27:python_ч_1|Программа на Python — часть 1]] | - [[..:27:python_ч_1|Программа на Python — часть 1]] | ||
| Строка 12: | Строка 13: | ||
| - [[..:33:python_ч_7|Программа на Python — часть 7]] | - [[..:33:python_ч_7|Программа на Python — часть 7]] | ||
| - [[..:34:python_ч_8|Программа на Python — часть 8]] | - [[..:34:python_ч_8|Программа на Python — часть 8]] | ||
| - | - [[..:35:python_ч_9|Программа на Python — часть 9]] - | + | - [[..:35:python_ч_9|Программа на Python — часть 9]] |
| + | - [[..:36:python_ч_10|Программа на Python — часть 10]] | ||
| + | - [[..:37:python_ч_11|Программа на Python — часть 11]] | ||
| + | - [[..:38:python_ч_12|Программа на Python — часть 12]] | ||
| + | - [[..:39:python_ч_13|Программа на Python — часть 13]] | ||
| + | - [[..:40:python_ч_14|Программа на Python — часть 14]] | ||
| Если вы похожи на меня, вам не понравится первая часть статьи. Мне не нравится, когда автор говорит, что я должен тщательно прочитать каждое слово в книге (или главе, или статье), потому что я знаю: это скучно — даже когда понимаю, что всё равно буду перечитывать ради моего же блага. | Если вы похожи на меня, вам не понравится первая часть статьи. Мне не нравится, когда автор говорит, что я должен тщательно прочитать каждое слово в книге (или главе, или статье), потому что я знаю: это скучно — даже когда понимаю, что всё равно буду перечитывать ради моего же блага. | ||
| Строка 70: | Строка 76: | ||
| Внесите (щёлкнув на кнопке-галочке) и сохраните изменения. Опять вернитесь в режим разработки и увидите (если у вас выделена вкладка «Объекты» в окне инспектора), что теперь выделен Frame1. Это то, что мы хотели. Перейдите обратно на вкладку «Конструктор», измените название «Frame1» на «Our First GUI». Внесите изменения и сохраните их ещё раз. Теперь запустим приложение. В окне Редактора щёлкните жёлтую кнопку Запустить. | Внесите (щёлкнув на кнопке-галочке) и сохраните изменения. Опять вернитесь в режим разработки и увидите (если у вас выделена вкладка «Объекты» в окне инспектора), что теперь выделен Frame1. Это то, что мы хотели. Перейдите обратно на вкладку «Конструктор», измените название «Frame1» на «Our First GUI». Внесите изменения и сохраните их ещё раз. Теперь запустим приложение. В окне Редактора щёлкните жёлтую кнопку Запустить. | ||
| - | {{ :fullcircle:31:screenshot_018.png?450 }} | + | {{ :fullcircle:31:screenshot_016.png?450 }} |
| Щёлкните на кнопке, но ничего не произойдёт. Почему? Мы не сказали кнопке, что надо делать. Для этого необходимо установить событие, которое будет вызываться при нажатии на кнопку. Щёлкните крестик в правом верхнем углу для остановки. Вернитесь в режим разработки, выделите кнопку, перейдите на вкладку «События» окна Инспектора. Щёлкните на ButtonEvent и затем два раза на появившемся тексте wx.EVT_BUTTON, и вы увидите, что в окне ниже появится событие кнопки под названием «OnBtnShowDialogButton». Внесите изменения и сохраните файл. | Щёлкните на кнопке, но ничего не произойдёт. Почему? Мы не сказали кнопке, что надо делать. Для этого необходимо установить событие, которое будет вызываться при нажатии на кнопку. Щёлкните крестик в правом верхнем углу для остановки. Вернитесь в режим разработки, выделите кнопку, перейдите на вкладку «События» окна Инспектора. Щёлкните на ButtonEvent и затем два раза на появившемся тексте wx.EVT_BUTTON, и вы увидите, что в окне ниже появится событие кнопки под названием «OnBtnShowDialogButton». Внесите изменения и сохраните файл. | ||
| Строка 76: | Строка 82: | ||
| {{ :fullcircle:31:screenshot_017.png?450 }} | {{ :fullcircle:31:screenshot_017.png?450 }} | ||
| - | Прежде чем мы пойдём дальше, давайте рассмотрим получившийся код (стр. 11). | + | Прежде чем мы пойдём дальше, давайте рассмотрим получившийся код. |
| + | <code> | ||
| + | #Boa:Frame:Frame1 | ||
| + | import wx | ||
| + | |||
| + | def create(parent): | ||
| + | return Frame1(parent) | ||
| + | |||
| + | [wxID_FRAME1, wxID_FRAME1BUTTON1, wxID_FRAME1PANEL1, | ||
| + | ] = [wx.NewId() for _init_ctrls in range(3)] | ||
| + | |||
| + | class Frame1(wx.Frame): | ||
| + | def _init_ctrls(self, prnt): | ||
| + | # generated method, don't edit | ||
| + | wx.Frame.__init__(self, id=wxID_FRAME1, name='', parent=prnt, | ||
| + | pos=wx.Point(324, 286), size=wx.Size(768, 509), | ||
| + | style=wx.DEFAULT_FRAME_STYLE, title=u'My First GUI') | ||
| + | self.SetClientSize(wx.Size(768, 509)) | ||
| + | |||
| + | self.panel1 = wx.Panel(id=wxID_FRAME1PANEL1, name='panel1', parent=self, | ||
| + | pos=wx.Point(0, 0), size=wx.Size(768, 509), | ||
| + | style=wx.TAB_TRAVERSAL) | ||
| + | |||
| + | self.button1 = wx.Button(id=wxID_FRAME1BUTTON1, label=u'ClickMe', | ||
| + | name='button1', parent=self.panel1, pos=wx.Point(312, 208), | ||
| + | size=wx.Size(85, 29), style=0) | ||
| + | self.button1.Bind(wx.EVT_BUTTON, self.OnButton1Button, | ||
| + | id=wxID_FRAME1BUTTON1) | ||
| + | |||
| + | def __init__(self, parent): | ||
| + | self._init_ctrls(parent) | ||
| + | |||
| + | def OnButton1Button(self, event): | ||
| + | event.Skip() | ||
| + | </code> | ||
| В первой строке содержится комментарий, который сообщает Boa Constructor о том, что это — файл boa. Он игнорируется компилятором Python, но не Boa. В следующей строке импортируется wxPython. Теперь рассмотрим определение класса ниже. | В первой строке содержится комментарий, который сообщает Boa Constructor о том, что это — файл boa. Он игнорируется компилятором Python, но не Boa. В следующей строке импортируется wxPython. Теперь рассмотрим определение класса ниже. | ||
| Строка 89: | Строка 129: | ||
| Сохраните и нажмите кнопку Пуск (жёлтая стрелка). Вы должны увидеть что-то вроде этого: | Сохраните и нажмите кнопку Пуск (жёлтая стрелка). Вы должны увидеть что-то вроде этого: | ||
| + | |||
| + | {{ :fullcircle:31:screenshot_018.png?450 }} | ||
| А при нажатии на кнопку вы должны увидеть что-то вроде этого: | А при нажатии на кнопку вы должны увидеть что-то вроде этого: | ||
| + | |||
| + | {{ :fullcircle:31:screenshot_019.png?450 }} | ||
| Поймите: это самый простой способ вызвать команду отображения окна сообщения. Вы можете также передать больше параметров. | Поймите: это самый простой способ вызвать команду отображения окна сообщения. Вы можете также передать больше параметров. | ||
| Строка 106: | Строка 150: | ||
| Вот так отображается окно сообщения с этой иконкой | Вот так отображается окно сообщения с этой иконкой | ||
| - | + | <code>wx.MessageBox('You Clicked the button', 'Info', wx.ICON_INFORMATION)</code> | |
| - | wx.MessageBox('You Clicked the button', 'Info', wx.ICON_INFORMATION) | + | |
| или любой другой иконкой, которая подходит к ситуации. Также имеются различные переменные порядка кнопок. Но о них мы поговорим в следующий раз. | или любой другой иконкой, которая подходит к ситуации. Также имеются различные переменные порядка кнопок. Но о них мы поговорим в следующий раз. | ||