【发布时间】:2017-10-03 14:30:46
【问题描述】:
我的代码提出了两个不同的问题
首先,我无法显示网格的第四行,尽管第五行似乎显示得很好。
其次,我的 passVal 函数不断给我错误:
passVal() takes 1 positional argument but 2 were given
我尝试重新排列并将其转换为字符串,但似乎没有任何效果。
我认为有可能是同一件事导致了同样的问题,因为它们都以同一个按钮为中心,但我不确定。
import tkinter
class AccountCreation:
def __init__(self):
self.main = tkinter.Tk()
self.main.title("Account Creation")
self.topleftLabel = tkinter.Label(text=" ")
self.topleftLabel.grid(row=1,column=1)
self.botrightLabel = tkinter.Label(text=" ")
self.botrightLabel.grid(row=5,column=5)
self.promptLabel = tkinter.Label(text="Create a password with at least nine (9)\n characters that contains at least one digit, \n one uppercase, and one lowercase letter.\n\n")
self.promptLabel.grid(row=2,column=2,columnspan=2)
self.passLabel = tkinter.Label(text="Password:")
self.passLabel.grid(row=3,column=2)
self.passEntry = tkinter.Entry(width = 18, justify='right')
self.passEntry.grid(row=3,column=3)
self.enterButton = tkinter.Button(text="Enter", \
command=self.passVal(self.passEntry.get()))
self.enterButton.grid(row=4,column=2)
self.cancelButton = tkinter.Button(text="Cancel", \
command=self.cancel)
self.cancelButton.grid(row=4,column=3)
tkinter.mainloop()
def passVal(pw):
if len(pw) < 9:
print ("no")
def cancel(self):
self.main.destroy()
my_gui = AccountCreation()
【问题讨论】:
-
顺便说一句,您不需要使用标签进行间距。您可以为此使用填充。
-
@BryanOakley,我不认为这个问题与您引用的帖子重复。这个问题问题与
passVal方法中缺少的self参数更相关。是的,还有在 init 上执行命令的问题,但这不是主要问题/问题。 -
@Mike-SMT:很公平。
标签: python python-3.x function tkinter grid