Я использую Tkinter в python. Я создал холст и пытаюсь переместить виджет с его позиции.
Но сейчас я получаю эту ошибку:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\Udasi\AppData\Local\Programs\Python\Python36\lib\tkinter\__init__.py", line 1705, in __call__
return self.func(*args)
File "C:\Users\Udasi\AppData\Local\Programs\Python\Python36\lib\tkinter\__init__.py", line 749, in callit
func(*args)
TypeError: move_up() missing 6 required positional arguments: 'tag', 'parent', 'root', 'pady_top', 'x', and 'y'
Вот код:
import tkinter
def move_up(tag, parent, root, pady_top, x, y):
y-=10
parent.move(tag, 0, -10)
if(y>pady_top):
root.after(100, move_up)
else:
parent.move(tag, 0, y-pady_top)
return y
def float_top(tag, widget, parent, root, pady_top, x, y):
move_up(tag, parent, root, pady_top, x, y)
Я не понимаю, где проблема. Вот код в отдельном файле, который его вызывает:
import tkinter as tk
from PIL import Image, ImageTk
import animations
class App():
def __init__(self, colors, logo_loc):
self.colors = colors
self.root = tk.Tk()
self.root.state("zoomed")
self.rootFrame = tk.Canvas(self.root, width=self.root.winfo_width(), height=self.root.winfo_height())
self.rootFrame.pack(fill=tk.BOTH, expand=True)
self.logo_loc=logo_loc
def firstScreen(self):
self.rootFrame.config(background=self.colors['primary'])
x = (self.root.winfo_width()//2)
y = (self.root.winfo_height()//2)
self.logo_tag="logo"
self.logo_id=self.rootFrame.create_image(x+10, y, image=self.logo, tags="logo")
animations.float_top(self.logo_tag, self.logo, self.rootFrame, self.root, 100, x, y)
def loadLogo(self):
self.logo = ImageTk.PhotoImage(file=self.logo_loc)
self.root.update()
class Controller:
def __init__(self, app):
self.app = app
self.app.loadLogo()
self.app.firstScreen()
colors = {'primary':"#1e1e1e", 'secondary':"#001ec8", 'tertiary':"#e6a00a", 'common':"#f0f0f0"}
app = App(colors, "assets/musik.PNG")
controller = Controller(app)
app.root.mainloop()
В частности, это здесь:
animations.float_top(self.logo_tag, self.logo, self.rootFrame, self.root, 100, x, y)
Я также попытался передать 5 аргументов, затем он вызвал ту же ошибку, говоря 1 позиционный аргумент отсутствует ... но когда я передаю их все, он говорит, что все аргументы отсутствуют!