我正在學習 Python3 和 tkinter。我試圖用 binding 顯示密碼并用 binding<Button>隱藏密碼<ButtonRelease>,但我沒有任何解決方案。我所能做的就是顯示密碼,然后發生錯誤:
這是我的代碼:
import tkinter as tk
def show(e):
passwd_entry.config(show="")
# def hide(event):
# passwd_entry.config(show="*")
root = tk.Tk()
passwd_entry = tk.Entry(root, show='*', width=20)
passwd_entry.pack(side=tk.LEFT)
toggle_btn = tk.Button(root, text='Show Password', width=15, command=show)
toggle_btn.pack(side=tk.LEFT)
toggle_btn.bind("<Button>", show)
# toggle_btn.bind("<ButtonRelease>", hide)
root.mainloop()
這是我單擊時的錯誤button:
TypeError: show() missing 1 required positional argument: 'e'
uj5u.com熱心網友回復:
實體創建需要在tkinter您要呼叫的函式定義事件之前發生。
還可以使用 lambda 函式來呼叫里面的 show 函式,bind如下面的代碼中所述。它應該有幫助。
import tkinter as tk
root = tk.Tk()
def show():
passwd_entry.config(show="")
def hide():
passwd_entry.config(show="*")
passwd_entry = tk.Entry(root, show='*', width=20)
passwd_entry.pack(side=tk.LEFT)
toggle_btn = tk.Button(root, text='Show Password', width=15)
toggle_btn.pack(side=tk.LEFT)
toggle_btn.bind("<ButtonPress>", lambda event:show())
toggle_btn.bind("<ButtonRelease>", lambda event:hide())
root.mainloop()
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/439071.html
標籤:Python tkinter tkinter-entry tkinter 按钮
