首页 > 解决方案 > Tkinter:避免将焦点移动到窗口

问题描述

我正在尝试制作屏幕键盘。它适用于窗口中的小部件,但是当我按下按钮时,它会将焦点从我尝试输入的窗口移到具有按钮的窗口中。如何防止python移动?

from tkinter import *
from pynput.keyboard import Key, Controller
keyboard = Controller()

class App:
    def __init__(self, master):
        self.entry = Entry()
        self.buttonOne = Button(text='1')
        self.buttonTwo = Button(text='2')
        self.buttonThree = Button(text='3')
        self.buttonOne.bind("<Button-1>", lambda event, keyPressed='1': self.pressed(event, keyPressed))
        self.buttonTwo.bind("<Button-1>", lambda event, keyPressed='2': self.pressed(event, keyPressed))
        self.buttonThree.bind("<Button-1>", lambda event, keyPressed='3': self.pressed(event, keyPressed))
        self.entry.grid(row=0, column=0, columnspan=3)
        self.buttonOne.grid(row=1, column=0)
        self.buttonTwo.grid(row=1, column=1)
        self.buttonThree.grid(row=1, column=2)
    def pressed(self, event, keyPressed):
        keyboard.press(keyPressed)
        keyboard.release(keyPressed)
root = Tk()
app = App(root)
root.mainloop()

标签: pythontkinter

解决方案


我建议使用withdraw()and deiconify()。这将使带有按钮的窗口在您在该窗口上调用它时不可见。一旦你使用deiconify()它,它就会反转并让它再次可见。

更多信息可以在这里找到。


推荐阅读