Время сеанса Python wx - PullRequest
0 голосов
/ 09 июня 2018

Я пытаюсь написать простой код для тайм-аута сеанса.моя идея состоит в том, что если пользователь не взаимодействует с приложением в течение 5 минут, то функция запустится и убьет приложение.Но если пользователь активен и взаимодействует с приложением, функция kill не сможет работать.Кто-нибудь поможет

мой простой WX здесь

import wx

class MyForm(wx.Frame):

    def __init__(self):
        wx.Frame.__init__(self, None, wx.ID_ANY, "Timeout",
                          size=(500, 500))

        panel = wx.Panel(self, wx.ID_ANY)
        self.toggleBtn = wx.Button(panel, wx.ID_ANY, "Enter")
        self.toggleBtn.Bind(wx.EVT_BUTTON, self.onToggle)

    def onToggle(self, event):
        print("you have a action")


if __name__ == "__main__":
    app = wx.App(False)
    frame = MyForm().Show()
    app.MainLoop()

1 Ответ

0 голосов
/ 09 июня 2018

wx.Timer - это то, что вам нужно.

Запустить таймер с интервалом 60000 мс (5 минут).Привязать событие таймера к некоторому обработчику.Когда таймер выстрелит, закройте ваше приложение в этом обработчике.

Если пользователь выполняет какое-либо действие (например, перемещает мышь или нажимает на клавиатуру), таймер должен быть остановлен и перезапущен.
Для этого вам нужно связать события мыши и клавиатуры (и позволить им обрабатываться как обычно, вызывая Skip ).В этих обработчиках вы перезапускаете таймер.

См., Например, эту вики

...