【问题标题】:Cant define variable from tkinter Entry box [closed]无法从 tkinter 输入框定义变量 [关闭]
【发布时间】:2016-12-22 05:29:16
【问题描述】:

我正在尝试在 python 3.5 中学习 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'

提前感谢您的帮助!

【问题讨论】:

    标签: python class tkinter python-3.5


    【解决方案1】:

    你缺少括号!

    text = StringVar()
    

    【讨论】:

      【解决方案2】:

      有2个错误:

      1) 正如@cdonts 所说,使用StringVar() 而不是StringVar

      2) StringVar() 应该在调用 Tk() 之后调用,所以在创建 myentry 之前移动 text = StringVar():

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-06-09
        • 1970-01-01
        • 2023-02-03
        • 2011-09-18
        • 1970-01-01
        • 1970-01-01
        • 2012-08-08
        • 1970-01-01
        相关资源
        最近更新 更多