Форум сайта python.su
Ипользую 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()
Офлайн
Сделай так, должно работать :)
wx.EVT_ENTER_WINDOW
wx.EVT_LEAVE_WINDOW
Офлайн
Чета не пашет wx.EVT_ENTER_WINDOW
Можешь предложить кусок кода может что не так в синтаксисе?
Офлайн
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()
Офлайн
Что то попробовал не один не второй вариант у меня не заработал….
Толи события EVT_SET_FOCUS, EVT_KILL_FOCUS не работают толи еще что….
Офлайн