python3 tkinter出错

时间:2018-04-01 01:25:20

标签: python python-3.x class object tkinter

以下是来自 Python3.6 Ubuntu 17.10

的mi代码
  

Atom 编写,将在 Jupyter上实现   笔记本

from tkinter import *
from tkinter import ttk
  

此处启动错误

 class Aplicacion():
        def __init__(self):
            self.root = Tk()
            self.root.geometry('300x200')
            self.root.resizable(width = False, height = False)
            self.root.configure(bg = 'red')
            self.root.title('Cachonerismo')
            self.nombre = StringVar()
            self.respuesta = StringVar()
            self.txt = ttk.Entry(self.root,textvariable = self.nombre)
            self.txt.pack(side = TOP)
            self.txt1 = ttk.Entry(self.root, textvariable = self.respuesta)
            self.txt1.pack(side = BOTTOM)
            self.btn = ttk.Button(self.root, text = 'Mostrar', command = self.saluda).pack(side = LEFT)
            self.bcl = ttk.Button(self.root, text='Cerrar', command = self.root.destroy).pack(side = RIGHT)
            self.root.mainloop()

        def saluda(self):

            self.a = self.nombre.get(self)
            self.respuesta.set(a)


    app = Aplicacion()

这是错误我得到

Exception in Tkinter callback
Traceback (most recent call last):
  File "/usr/lib/python3.6/tkinter/__init__.py", line 1702, in __call__
    return self.func(*args)
  File "tkinterTest.py", line 23, in saluda
    self.a = self.nombre.get(self)
TypeError: get() takes 1 positional argument but 2 were given

1 个答案:

答案 0 :(得分:0)

这是the chunk of code失败:

class StringVar(Variable):
    """Value holder for strings variables."""
    _default = ""
    def __init__(self, master=None, value=None, name=None):
        """Construct a string variable.
        MASTER can be given as master widget.
        VALUE is an optional value (defaults to "")
        NAME is an optional Tcl name (defaults to PY_VARnum).
        If NAME matches an existing variable and VALUE is omitted
        then the existing value is retained.
        """
        Variable.__init__(self, master, value, name)

    def get(self):
        """Return value of variable as string."""
        value = self._tk.globalgetvar(self._name)
        if isinstance(value, str):
            return value
        return str(value)

你必须打电话"要实例化它的类:

self.nombre = StringVar()
self.respuesta = StringVar()