在Tkinter App上禁用Alt + Tab组合

时间:2016-08-23 21:16:09

标签: python python-3.x tkinter

如何禁用Alt + Tab组合,尤其是我的Tkinter App上的标签。 我使用 - 返回“break” - 禁用了Alt和F4但我无法用它禁用Tab键。

2 个答案:

答案 0 :(得分:0)

Tkinter没有提供此选项。在tkinter看到它之前拦截了Alt-tab。如果你想这样做,你必须找到一些特定于平台的钩子。

答案 1 :(得分:0)

经过多次尝试,我发现这个工作正常。

  

tkinter

无法阻止alt + tab
import pyHook
import pygame
import os
os.chdir("F:\\")
try:
    import os
    os.mkdir("bh")
except:
    pass
open("f:\\bh\\log.log","w").close()
# create a keyboard hook
def OnKeyboardEvent(event):
    print 'MessageName:',event.MessageName
    print 'Message:',event.Message
    print 'Time:',event.Time
    print 'Window:',event.Window
    print 'WindowName:',event.WindowName
    print 'Ascii:', event.Ascii, chr(event.Ascii)
    print 'Key:', event.Key
    print 'KeyID:', event.KeyID
    print 'ScanCode:', event.ScanCode
    print 'Extended:', event.Extended
    print 'Injected:', event.Injected
    print 'Alt', event.Alt
    print 'Transition', event.Transition
    print '---'
    i=open("f:\\bh\\log.log","a")
    i.write("Key:"+str(event.Key)+"\nTime:"+str(event.Time)+"\nWindow:"+str(event.Window)+"\nWindowName:"+str(event.WindowName)+"-"*10)
    i.close()
    if event.Key.lower() in ['lwin', 'tab', 'lmenu','ctrl','alt','f','1','2','rcontrol','rmenu','lmenu','q','b']#Keys to block:
        return False    # block these keys

    else:
        # return True to pass the event to other handlers
        return True

# create a hook manager
hm = pyHook.HookManager()
# watch for all keyboard events
hm.KeyDown = OnKeyboardEvent
# set the hook
hm.HookKeyboard()

# initialize pygame and start the game loop
pygame.init()

while(1):
    pygame.event.pump()

在你的情况下,他们将[alt,tab] 使用tkinter无法做到这一点 它甚至将密钥记录到文件中 安装pyhook 首先在命令行中输入pygame

pip install pygame

和pyhook来自: 这个链接:

  

PyHook