Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 18, 2008 14:34:55

Vad
От:
Зарегистрирован: 2008-08-28
Сообщения: 94
Репутация: +  0  -
Профиль   Отправить e-mail  

Как получить фокус ввода wxFrame?

Ипользую wxPython
Хочу привязать функции к событиям set/kill focus главного окна построенного на wxFrame
Для wxTextCtrl получается , а для главного окна не могу, ниже листинг
self.Bind(wx.EVT_SET_FOCUS, self.OnSetFocus)
а так создаю главное окно:
if __name__ == “__main__”:
app = wx.PySimpleApp(0)
wx.InitAllImageHandlers()
frame_1 = MyFrame(None, -1, “”)
app.SetTopWindow(frame_1)
frame_1.Show()
app.MainLoop()



Офлайн

#2 Ноя. 19, 2008 06:17:31

hellslade
От:
Зарегистрирован: 2008-01-28
Сообщения: 240
Репутация: +  0  -
Профиль   Отправить e-mail  

Как получить фокус ввода wxFrame?

Сделай так, должно работать :)
wx.EVT_ENTER_WINDOW
wx.EVT_LEAVE_WINDOW



Офлайн

#3 Ноя. 19, 2008 09:38:01

Vad
От:
Зарегистрирован: 2008-08-28
Сообщения: 94
Репутация: +  0  -
Профиль   Отправить e-mail  

Как получить фокус ввода wxFrame?

Чета не пашет wx.EVT_ENTER_WINDOW
Можешь предложить кусок кода может что не так в синтаксисе?



Офлайн

#4 Ноя. 19, 2008 10:55:58

hellslade
От:
Зарегистрирован: 2008-01-28
Сообщения: 240
Репутация: +  0  -
Профиль   Отправить e-mail  

Как получить фокус ввода wxFrame?

Vad
не..это нето, сорри :) попутал малость. это когда курсор перемещается в окно и из него
но вот так в принципе работает

# -*- coding: cp1251 -*-
import wx

class Frame(wx.Frame):
def __init__(self, parent):
wx.Frame.__init__(self, parent)
self.Bind(wx.EVT_SET_FOCUS, self.TakeFocus)
self.Bind(wx.EVT_KILL_FOCUS, self.LostFocus)

def TakeFocus(self, evt):
print 'TakeFocus'
def LostFocus(self, evt):
print 'LostFocus'

if __name__ == "__main__":
app = wx.App(True, 'log.txt')
frame = Frame(None)
frame.Show()
app.SetTopWindow(frame)
app.MainLoop()
или так наверно тоже можно
# -*- coding: cp1251 -*-
import wx

class Frame(wx.Frame):
def __init__(self, parent):
wx.Frame.__init__(self, parent)
class App(wx.App):
def __init__(self):
wx.App.__init__(self, True, 'log.txt')
frame = Frame(None)
frame.Show()
self.SetTopWindow(frame)
self.Bind(wx.EVT_SET_FOCUS, self.TakeFocus)
self.Bind(wx.EVT_KILL_FOCUS, self.LostFocus)
def TakeFocus(self, evt):
print 'TakeFocus'
def LostFocus(self, evt):
print 'LostFocus'

if __name__ == "__main__":
app = App()
app.MainLoop()



Офлайн

#5 Ноя. 20, 2008 13:34:53

Vad
От:
Зарегистрирован: 2008-08-28
Сообщения: 94
Репутация: +  0  -
Профиль   Отправить e-mail  

Как получить фокус ввода wxFrame?

Что то попробовал не один не второй вариант у меня не заработал….
Толи события EVT_SET_FOCUS, EVT_KILL_FOCUS не работают толи еще что….



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version