1 回答

TA貢獻1816條經驗 獲得超6個贊
我在這里看到兩個問題,第一個問題是您嘗試用于.grid顯示文本的標簽,并用于.pack滾動條。您不能在同一窗口中同時使用.grid和。.pack
.grid(row=index, column=0)這是我通過替換來糾正此問題的代碼.pack(anchor = W)
from tkinter import *
from functools import partial
words = ["test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test"]
def validateLogin(password):
? ? print(password.get())
? ? if password.get() == "test":
? ? ? ? newWindow = Tk()
? ? ? ? newWindow.geometry('1800x800')
? ? ? ? newWindow.title("Passwords")
? ? ? ? scrollbar = Scrollbar(newWindow)
? ? ? ? scrollbar.pack(side=RIGHT, fill=Y)
? ? ? ? tkWindow.destroy()
? ? ? ? for index, word in enumerate(words):
? ? ? ? ? ? Label(newWindow, text=word).pack(anchor = W)
? ? if password.get() != "test":
? ? ? ? Label(tkWindow, text="Wrong password!", fg='red').grid(row=5, column=2)
#window
tkWindow = Tk()
tkWindow.geometry('250x100')
tkWindow.title('Passwords')
#password label and password entry box
passwordLabel = Label(tkWindow,text="Password").grid(row=1, column=0)
password = StringVar()
passwordEntry = Entry(tkWindow, textvariable=password, show='*').grid(row=1, column=2)
validateLogin = partial(validateLogin, password)
#login button
loginButton = Button(tkWindow, text="Login", command=validateLogin).grid(row=4, column=2)
tkWindow.mainloop()
第二個問題是滾動條實際上沒有用。我不相信滾動條本身就可以在 tkinter 中的窗口/框架上工作。這意味著修復原始問題后,標簽和滾動條現在都會加載,但滾動條不會執行任何操作。
添加回答
舉報