Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 20, 2010 14:18:32

farex
От:
Зарегистрирован: 2010-03-20
Сообщения: 29
Репутация: +  0  -
Профиль   Отправить e-mail  

Как обратится к функции.

Вот код:

# -*- coding: utf-8 -*-

import wx

class MainFrame(wx.Frame):
def __init__(self, parent):
wx.Frame.__init__(self, parent, -1, "Простой пример wxRadioButton")
self.panel = wx.Panel(self)
self.SetSize((200,200))
self.Center()

self.radio0 = wx.RadioButton(self.panel, -1, "Значения 0", style=wx.RB_GROUP)
self.radio1 = wx.RadioButton(self.panel, -1, "Значения 1")
self.radio2 = wx.RadioButton(self.panel, -1, "Значения 2")

self.radio0.Bind(wx.EVT_RADIOBUTTON, self.Event0)
self.radio1.Bind(wx.EVT_RADIOBUTTON, self.Event0)
self.radio2.Bind(wx.EVT_RADIOBUTTON, self.Event0)

sizer0 = wx.BoxSizer(wx.VERTICAL)

sizer0.Add(self.radio0, 0, flag=wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, border=5)
sizer0.Add(self.radio1, 0, flag=wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, border=5)
sizer0.Add(self.radio2, 0, flag=wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, border=5)

self.SetSizer(sizer0)

def Event0(self, event):
value0 = self.radio0.GetValue()
value1 = self.radio1.GetValue()
value2 = self.radio2.GetValue()

if value0 == True:
self.text = wx.StaticText(self.panel, -1,"Выбрано значения 0", ((50, 80)))
a = 1
elif value1 == True:
self.text = wx.StaticText(self.panel, -1,"Выбрано значения 1", ((50, 80)))
a = 2
elif value2 == True:
self.text = wx.StaticText(self.panel, -1,"Выбрано значения 2", ((50, 80)))
a = 3

class App(wx.App):
def OnInit(self):
frame = MainFrame(None)
frame.Show()

return True

def main():
application = App()
application.MainLoop()

if __name__ == '__main__':
main()
Как обратится к функции Event0 в дальнейшем
То есть что бы использвать переменную $a вне этой функции. допустим в функции Event1



Офлайн

#2 Апрель 20, 2010 15:11:26

Griffon
От: Ukrain, Zaporozhie
Зарегистрирован: 2009-03-04
Сообщения: 324
Репутация: +  11  -
Профиль   Отправить e-mail  

Как обратится к функции.

self.a? :)



Офлайн

#3 Апрель 20, 2010 15:17:07

farex
От:
Зарегистрирован: 2010-03-20
Сообщения: 29
Репутация: +  0  -
Профиль   Отправить e-mail  

Как обратится к функции.

    def OnBegin(self, event):
self.button.Destroy()
self.button1.Destroy()
self.text = wx.StaticText(self.panel, -1, self.a, ((100, 120)))

def Event0(self, event):
value0 = self.radio0.GetValue()
value1 = self.radio1.GetValue()
value2 = self.radio2.GetValue()

if value0 == True:
self.text = wx.StaticText(self.panel, -1,"Выбрано значения 0", ((50, 80)))
self.a = 1
elif value1 == True:
self.text = wx.StaticText(self.panel, -1,"Выбрано значения 1", ((50, 80)))
self.a = 2
elif value2 == True:
self.text = wx.StaticText(self.panel, -1,"Выбрано значения 2", ((50, 80)))
self.a = 3
Так не хочет работать…
Извините можно поподробнее.



Отредактировано (Апрель 20, 2010 15:18:55)

Офлайн

#4 Апрель 20, 2010 15:24:21

farex
От:
Зарегистрирован: 2010-03-20
Сообщения: 29
Репутация: +  0  -
Профиль   Отправить e-mail  

Как обратится к функции.

Все разобрался…
Спс, нужно было просто в ковычки заключиить
self.a = “1”
(=



Офлайн

#5 Апрель 20, 2010 16:07:40

Митрич
От:
Зарегистрирован: 2009-03-19
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Как обратится к функции.

так он ещё может не работать и потому, что переменная экземпляра a появляется у него только после нажатия на одну из радио-кнопок… лучше всего в конструкторе присвоить ей какое-нибудь значение.



Отредактировано (Апрель 20, 2010 16:08:19)

Офлайн

#6 Апрель 20, 2010 16:17:23

farex
От:
Зарегистрирован: 2010-03-20
Сообщения: 29
Репутация: +  0  -
Профиль   Отправить e-mail  

Как обратится к функции.

Еще раз спасибо… Так и сделал, присвоил self.a = “0” в начале кода…
И все заработало как еть… получилось нечто значение по умолчанию., до этого как вы совершенно точно заметили нужно было нажать на одну из радио кнопок.
Еще раз спасибо за лояльность….



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version