Hej, ludzie używając Pythona, wiążę przycisk radiowy, a gdy wywoływane jest, ale po tym, jak wpisuję TextCtrl Nie jestem w stanie uzyskać wprowadzonego ciągu, mój kod idzie w ten sposób

def A(self,event):
    radiobut = wx.RadioButton(self.nameofframe, label = 'Opt-1', pos = (10,70),size= (90,-1))
    self.Bind(wx.EVT_RADIOBUTTON,self.B,radiobut)
def B(self,event):
    Str1 = wx.TextCtrl(self.nameofframe,pos = (100,70), size=(180,-1))
    print Str1.GetValue()

Czy ktoś mógł mi powiedzieć, gdzie jest problem. Dlaczego nie mogę go wydrukować?

0
G.Jan 21 listopad 2013, 15:16

2 odpowiedzi

Str1.getValue () będzie pusty, ponieważ po kliknięciu przycisku radiowy tworzysz nowy textctrl, a następnie natychmiast uzyskasz jego wartość, będzie opróżniona, ponieważ użytkownik nie był w stanie nic w nim wpisać.

2
Yoriz 21 listopad 2013, 13:05

Oto zwykły sposób, aby to zrobić.

Utwórz kontrolę tekstu podczas tworzenia ramy. Zapisz wskaźnik (przepraszam C ++ - Cokolwiek robisz z Python) do sterowania tekstem i wiązać metodę zdarzenia EVT_TEXT_ENTER. Gdy wydarzenie pożary możesz przeczytać, co wpisuje użytkownika.

Jeśli chcesz kontrolować, gdy i gdy nie jest widoczna, użyj metody Ukryj ().

1
ravenspoint 21 listopad 2013, 13:48