0
我有一個用wxPython
創建的中型桌面應用程序。我想在這個應用程序中實現一個session
工具。經過一段時間的不活動之後,應用程序應該將用戶註銷並自動顯示登錄屏幕。在wxPython
中完成此操作的最佳方法是什麼?wxPython會話超時
該應用在Windows 8, 7, XP
內使用wxPython 2.8.12.1
和Python 2.7
。
編輯1
綁定EVT_MOTION
到wx.Frame
和wx.Panel
不工作。如果我將EVT_MOTION
綁定到所有單個對象,它正在工作。有什麼辦法讓事件冒泡到最外面的父母(wx.Frame
)?
import wx
class MyFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, -1, "Checking EVT_MOTION with Frame")
panel = wx.Panel(self, -1)
sizer = wx.BoxSizer(wx.VERTICAL)
panel.SetSizer(sizer)
sizer.Add(wx.Button(panel, -1, "Button 1"), 1, wx.EXPAND)
sizer.Add(wx.Button(panel, -1, "Button 2"), 1, wx.EXPAND)
sizer.Add(wx.Button(panel, -1, "Button 3"), 1, wx.EXPAND)
self.Bind(event=wx.EVT_MOTION, handler=self.OnMotion)
self.Show()
def OnMotion(self, event):
print "EVT_MOTION: " + str(event.GetEventObject())
if __name__ == '__main__':
app = wx.App(False)
frame = MyFrame()
app.MainLoop()
我有許多按鈕和其他控件的面板。他們中的大多數人已經受到一些事件的約束。如何在不爲每個控件的事件添加計時器代碼的情況下實現這一目標?如果我直接將按鍵和點擊事件綁定到最外層框架,它會起作用嗎?但是我也有一些控制可以阻止事件的傳播。 – arvinchhi 2014-12-02 17:25:09
我只會將EVT_MOTION事件綁定到框架或頂層面板。這應該適用於大多數情況,因爲我希望用戶在使用應用程序的過程中移動鼠標。大多數超時至少5分鐘,通常10或15,所以這真的不應該是一個問題。 – 2014-12-02 17:32:18
謝謝,我會試試看,並會讓你知道結果:) – arvinchhi 2014-12-03 04:34:36