Я искал довольно много, но я не мог найти решение этого. Я пытаюсь создать регистрационную форму с помощью tkinter, которую позже я подключу к базе данных. Вот код:AttributeError: объект не имеет атрибута 'tk'
from Tkinter import *
class MWindow(object):
def __init__(self,master):
self.frame=Frame(master)
self.frame.pack()
self.title= Label(self,text = "Login")
self.title.grid(row=0,column=1)
self.userid_label = Label(self,text ="Username: ")
self.userid_label.grid(row=1,column=0)
self.userid_entry= Entry(self)
self.userid_entry.grid(row=1,column=1)
self.password_label = Label(self,text ="Password: ")
self.password_label.grid(row=2,column=0)
self.password_entry= Entry(self)
self.password_entry.grid(row=2,column=1)
self.signin = Button (self,text = "Login",command=logging_in)
self.signin.grid(row=5,column=1)
self.signup = Button (self,text = "Sign Up",command=signing_up)
self.signin.grid(row=5,column=2)
def logging_in(self):
pass
def signing_up(self):
pass
root= Tk()
root.attributes('-fullscreen',True)
root.resizable(width=False, height=False)
root.title("My Registration Form")
app=MWindow(root)
root.mainloop()
Здесь ошибка я получаю:
Traceback (most recent call last):
File "form.py", line 41, in
app=MWindow(root)
File "form.py", line 11, in init
self.title= Label(self,text = "Login")
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk/Tkinter.py", line 2591, in init
Widget.init(self, master, 'label', cnf, kw)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk/Tkinter.py", line 2081, in init
BaseWidget._setup(self, master, cnf)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk/Tkinter.py", line 2059, in _setup
self.tk = master.tk
AttributeError: 'MWindow' object has no attribute 'tk'
Я пытался идти в библиотеку файлов, чтобы понять, что это неправильно, но, будучи новичком, я не могу сделать многое из этого , Некоторое объяснение того, что происходит, и почему было бы очень полезно.
спасибо большое! теперь он бежит без какой-либо ошибки, и я думаю, что у меня довольно много обернуть голову. Но теперь я получаю пустое окно без текста или кнопок, любая идея? – momo
Если вы изменили метод 'class ClsName (tk.Frame): ...', то вам нужно будет установить пакет/сетку в корневое окно. например - 'root = tk.Tk() app = MWindow (root) app.pack()' или вы можете сделать 'self.pack()/grid()' в классе – Pythonista
ah..missed the pack(). Еще раз спасибо. – momo