我正在嘗試打開第二個視窗,然后運行一些代碼并關閉按鈕事件上的第二個視窗。我已經嘗試了我能找到的每個示例,但仍然出現屬性錯誤。任何幫助表示贊賞。我對此很陌生,幾乎 55 歲了,開始了一項新的愛好。
我洗掉了大部分代碼,以便我希望得到足夠的發布,以便有人可以幫助我。大家圣誕快樂
# ADD NEW PASSWORD
def add_pass():
add_pass = Toplevel()
add_pass.title("Enter New Password")
add_pass.geometry('500x700')
# add_pass.resizable(0, 0)
Add_Button = Button(add_pass, text="Enter", font=("normal", 14),
command=add_butt)
Add_Button.grid(row=12, column=2, pady=30)
def add_butt():
print(Person_Entry.get())
# Create a database or connect to one
conn = sqlite3.connect('Pass.db')
c = conn.cursor()
# WRITE TEXT BOXES TO SQLITE3 DB USING VARIABLES.
PassData = [(Seq_Entry.get(), Person_Entry.get(), Name_Entry.get(),
URL_Entry.get(), Username_Entry.get(), Password_Entry.get(), Hint1_Entry.get(),
Hint2_Entry.get(), Hint3_Entry.get(), Notes_Entry.get())]
for element in PassData:
c.execute("INSERT INTO Passwords VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
element)
# Commit Changes
conn.commit()
# Close Connection
conn.close()
add_pass.destroy()
root = Tk()
root.geometry('500x500')
root.title('Password Saver')
my_menu = Menu(root)
root.mainloop()
uj5u.com熱心網友回復:
你在這里有幾個選項來實作這一點,最簡單的方法是使用lambda并傳遞你的視窗的參考,通過你的函式介面與變數add_pass一起存盤在函式的命名空間中。通過 tkinter 中的按鈕命令傳遞引數可以通過不同的方式實作,但我更喜歡 lambda。add_passadd_butt
更改如下所示:
def add_pass():
..
Add_Button = Button( ..,command=lambda window=add_pass: add_butt(window))
def add_butt(window):
window.destroy()
...
補充建議:
不要使用通配符匯入
不要多次使用相同的變數名
查看解釋 并查看PEP 8
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/393595.html
