2016-08-16 25 views
0

我想在python 3.5中學習tkinter,出於某種原因,我無法在輸入框中打印文本。這裏是我的代碼:無法定義tkinter的變量輸入框

from tkinter import * 

text = StringVar 

def func(): 
    print(text.get()) 

root = Tk() 
root.geometry('450x450') 
root.title('App') 

mylabel = Label(text='My Label').grid(row = 0, column=0, sticky='W') 

mybutton = Button(text = 'Button',command = func).grid(row=0,column=1,sticky='W') 

myentry = Entry(root, textvariable=text).grid(row=1,column=1) 

root.mainloop() 

然而,當我按下按鈕,我得到一個錯誤說

Traceback (most recent call last): 
    File "/usr/lib/python3.5/tkinter/__init__.py", line 1553, in __call__ 
    return self.func(*args) 
    File "tkapp.py", line 6, in func 
    print(text.get()) 
TypeError: get() missing 1 required positional argument: 'self' 

在此先感謝您的幫助!

回答

0

有2個錯誤:

1)@cdonts說,使用StringVar()代替StringVar

2)StringVar()應該調用TK()之後被調用,因此在創建myentry之前移動text = StringVar()

text = StringVar() 
myentry = Entry(....) 
0

你錯過了括號!

text = StringVar()