我在我以前的專案中制作了 wordle(使用 tkinter),現在我不想使用一個條目來猜測,而是希望將 5 個條目鏈接在一起,就像下面的塊一樣作業:

在影像中,您可以在這些“鏈接”條目之間退格。我弄清楚了條目之間的輸入,但是如何洗掉它們?
from tkinter import *
root = Tk()
root.geometry('400x400')
def testlen():
global textinentry1, textinentry2, textinentry3, textinentry4, textinentry5
textinentry1= entry1.get()
textinentry2= entry2.get()
textinentry3= entry3.get()
textinentry4= entry4.get()
textinentry5= entry5.get()
if len(textinentry1) >1 :
entry1.delete(0,END)
entry1.insert(0,textinentry1[0])
entry2.delete(0, END)
entry2.insert(0,textinentry1[1] )
entry2.focus_set()
if len(textinentry2) >1 :
entry2.delete(0,END)
entry2.insert(0,textinentry2[0])
entry3.delete(0, END)
entry3.insert(0,textinentry2[1] )
entry3.focus_set()
if len(textinentry3) >1 :
entry3.delete(0,END)
entry3.insert(0,textinentry3[0])
entry4.delete(0, END)
entry4.insert(0,textinentry3[1] )
entry4.focus_set()
if len(textinentry4) >1 :
entry4.delete(0,END)
entry4.insert(0,textinentry4[0])
entry5.delete(0, END)
entry5.insert(0,textinentry4[1] )
entry5.focus_set()
if len(textinentry5) > 1:
entry5.delete(0,END)
entry5.insert(0,textinentry5[0])
entry1 = Entry(root,width=3, font = ('Georgia 18'), justify=CENTER)
entry1.grid(row=0, column=0)
entry2 = Entry(root, width=3, font = ('Georgia 18'), justify=CENTER)
entry2.grid(row=0, column=1)
entry3 = Entry(root, width=3, font = ('Georgia 18'), justify=CENTER)
entry3.grid(row=0, column=2)
entry4 = Entry(root, width=3, font = ('Georgia 18'), justify=CENTER)
entry4.grid(row=0, column=3)
entry5 = Entry(root, width=3, font = ('Georgia 18'), justify=CENTER)
entry5.grid(row=0, column=4)
def loop():
testlen()
root.after(1,loop) # 1 is 1 millisecond. Here root.after method calls the loop
# function after 1 millisecond without crashing your code.
loop()
root.mainloop()
uj5u.com熱心網友回復:
首先,您必須獲得一些東西來注冊按鈕按下。為此,我匯入keyboard并用于if keyboard.is_pressed("backspace"):查看是否按下了退格鍵。
不幸的是,當一個人按下一個按鈕時,我們按住它幾毫秒,所以對于計算機,我們按下它不止一次。為了防止這種情況,我匯入time并發現使用time.sleep(.15)是最好的延遲,因為它阻止了我不小心按一次以上,而且我也可以按住它而不用代碼慢慢擦除每個字符。
這可以用一個回圈更好地濃縮,但我的獨立盒子的代碼是:
from tkinter import *
import keyboard, time
root = Tk()
root.geometry('400x400')
def testlen():
global textinentry1, textinentry2, textinentry3, textinentry4, textinentry5, whathasfocus
whathasfocus= root.focus_get()
textinentry1= entry1.get()
textinentry2= entry2.get()
textinentry3= entry3.get()
textinentry4= entry4.get()
textinentry5= entry5.get()
if whathasfocus == entry2 and len(textinentry2) == 0:
if keyboard.is_pressed("backspace"):
time.sleep(.15)
entry1.delete(0,END)
entry1.focus_set()
elif whathasfocus == entry3 and len(textinentry3) == 0:
if keyboard.is_pressed("backspace") :
time.sleep(.15)
entry2.delete(0,END)
entry2.focus_set()
elif whathasfocus == entry4 and len(textinentry4) == 0:
if keyboard.is_pressed("backspace") :
time.sleep(.15)
entry3.delete(0,END)
entry3.focus_set()
elif whathasfocus == entry5 and len(textinentry5) == 0:
if keyboard.is_pressed("backspace") :
time.sleep(.15)
entry4.delete(0,END)
entry4.focus_set()
if len(textinentry1) >1 :
entry1.delete(0,END)
entry1.insert(0,textinentry1[0])
entry2.delete(0, END)
entry2.insert(0,textinentry1[1] )
entry2.focus_set()
if len(textinentry2) >1 :
entry2.delete(0,END)
entry2.insert(0,textinentry2[0])
entry3.delete(0, END)
entry3.insert(0,textinentry2[1] )
entry3.focus_set()
if len(textinentry3) >1 :
entry3.delete(0,END)
entry3.insert(0,textinentry3[0])
entry4.delete(0, END)
entry4.insert(0,textinentry3[1] )
entry4.focus_set()
if len(textinentry4) >1 :
entry4.delete(0,END)
entry4.insert(0,textinentry4[0])
entry5.delete(0, END)
entry5.insert(0,textinentry4[1] )
entry5.focus_set()
if len(textinentry5) > 1:
entry5.delete(0,END)
entry5.insert(0,textinentry5[0])
entry1 = Entry(root,width=3, font = ('Georgia 18'), justify=CENTER)
entry1.grid(row=0, column=0)
entry1.focus_set()
entry2 = Entry(root, width=3, font = ('Georgia 18'), justify=CENTER)
entry2.grid(row=0, column=1)
entry3 = Entry(root, width=3, font = ('Georgia 18'), justify=CENTER)
entry3.grid(row=0, column=2)
entry4 = Entry(root, width=3, font = ('Georgia 18'), justify=CENTER)
entry4.grid(row=0, column=3)
entry5 = Entry(root, width=3, font = ('Georgia 18'), justify=CENTER)
entry5.grid(row=0, column=4)
def loop():
testlen()
root.after(1,loop) # 1 is 1 millisecond. Here root.after method call the loop function after 1 millisecond without crashing your code.
loop()
root.mainloop()
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/475795.html
