(2番目の)tkinterウィンドウがあります。これを開くと、フォーカスが取得されませんが、最初のウィンドウはフォーカスされたままになります(ただし、2番目のウィンドウは他のウィンドウの前に表示されます)。入力できるテキストボックスが含まれていますが、入力するにはダブルクリックする必要があります。
ウィンドウを開くときにテキストボックスのフォーカスを合わせるにはどうすればよいですか?
私の
試み:
textbox.focus_set()
、、
window.grab_set()
window.focus_set()
それらのどれも私がやりたいことをしませんでした。
編集:代わりに、メインウィンドウ.focus_set()
を閉じるときに(そしてそのときだけ)エラーが発生します:can't invoke "focus" command: application has been destroyed
これは私の現在のコードです(tkWin
メインウィンドウ、tkcWin
2番目のウィンドウです):
def click(self, field):
import _tkinter
if field != None:
try:
self.tkcWin = Tk()#creating window
self.tkcWin.focus()
self.tkcWin.title(field)
self.tkcWin.geometry('300x100')
self.mainframe = Frame(master=self.tkcWin,background="#60BF98")
self.mainframe.place(x=0, y=0, width=300, height=300)
self.textb = Text(master=self.mainframe)
self.textb.place(x=0, y=50)
self.textb.bind("<Return>",lambda a: self.setM(field))
self.textb.bind("<Return>",lambda a: self.tkcWin.destroy(),True)
self.tkcWin.grab_set()
self.tkWin.wait_window(self.tkcWin)
self.textb.focus_set()
hwnd = self.tkcWin.winfo_id()
ctypes.windll.user32.SetFocus(hwnd)
self.tkcWin.mainloop()
except _tkinter.TclError:
self.tkcWin.destroy()