簡體   English   中英

python3 tkinter錯誤

[英]Error with python3 tkinter

這是來自Python3.6Ubuntu 17.10的 mi代碼

它是用Atom編寫的,將在Jupyter Notebook中實現

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

這是代碼失敗的一部分:

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()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM