這個問題在這里已經有了答案: 關于 tkinter 中系結標簽的基本查詢 1 個答案 2天前關閉。
嗨,伙計們,我正在嘗試簡單地創建一個文本空間,將字母或任何輸入替換為星號,就像使用常規密碼一樣。但是,如果我按下任何鍵第一個輸入為空,為什么我將任何鍵系結到函式“文本”?因為如果我在列印(e.get())函式時輸入“m”,控制臺中的輸出為空?為什么它會忽略輸入以及如何在文本區域中簡單地顯示星號并將普通密碼系結到變數“a”,就像在我的代碼中一樣?使用 e.delete 和 e.insert 我只需剪切最后一個字符并用星號替換它這是我的代碼
from tkinter import *
a = ""
window = Tk()
def entra():
global a
if a == "cgf":
print ("a")
else:
print("noo")
def text (event):
global a
a = a e.get()
print(e.get())
e.delete(len(e.get()) - 1)
e.insert(END, "*")
e = Entry(window, borderwidth=3, width=50, bg="white", fg="black")
e.place(x=100, y=35)
e.bind("<Key>", text)
bottone_entra = Button (window, text = "Entra", borderwidth=2.5,command = entra)
bottone_entra.place (x=100, y=65)
etichetta = Label(window, text = "PASSWORD", bg = "#2B2B2B", fg = "white")
etichetta.place(x=97.5, y=10)
window.geometry ("500x500")
window.title ("Password")
window.configure(bg = "#2B2B2B")
window.mainloop()
uj5u.com熱心網友回復:
您不必為它手動構建邏輯,tkinter幸運的是已經提供了它。您只需為條目小部件設定一個額外的選項,show='*':
e = Entry(window, borderwidth=3, width=50, bg="white", fg="black", show='*')
為什么你應該避免構建/使用你自己的這種邏輯有很多原因,首先,一旦你這樣做get(),你只會得到 **** 而不是原來的文本。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/468258.html
