Skip to content
Advertisement

can’t invoke “wm” command: application has been destroyed

import tkinter as tk
from tkinter import *
import pyautogui
root = tk.Tk()
#label = tk.Label(root, text='you coomand hacking', font=    ('Times New Roman','80'), fg='black', bg='white')
#label.pack()
root.title("Wallpaper") 

wall = PhotoImage(file = "20170227180026_3.gif") 
wall_label = Label(image = wall)
root.geometry(f"{wall.width()}x{wall.height()}")     
root.overrideredirect(True)
currentMouseX,currentMouseY = pyautogui.position()
print(f'{currentMouseX} {currentMouseY}')
root.geometry("+0+0")
root.wm_attributes("-topmost", True)
root.wm_attributes("-disabled", True)
root.wm_attributes("-transparentcolor", "white")
wall_label.place(x = -2,y = -2)
root.after(1000 , root.destroy)
#root.geometry("+{}+{}".format(currentMouseX,currentMouseY))
root.geometry("+{}+{}".format(currentMouseX,currentMouseY))
root.mainloop()
root.after(1000 , root.destroy)
root.geometry("+{}+{}".format(currentMouseX,currentMouseY))

Please understand even if the source code is dirty.

What I want is for the image to follow the mouse

I tried to follow the mouse by repeating the image disappearing and appearing, but it is not easy.

Advertisement

Answer

Here. I made the image follow the mouse, without pyautogui.

Code:

import tkinter as tk
from tkinter import *
#import pyautogui
root = tk.Tk()
#label = tk.Label(root, text='you coomand hacking', font=    ('Times New Roman','80'), fg='black', bg='white')
#label.pack()
root.title("Wallpaper") 

wall = PhotoImage(file = "20170227180026_3.gif")

c = Canvas(root, height = 1200, width = 1200)
c.pack()
pic = c.create_image(600, 600, image = wall)

def movepic(event):
    x,y = event.x, event.y
    c.coords(pic, x, y)

c.bind_all("<Motion>", movepic)

root.mainloop()
User contributions licensed under: CC BY-SA
4 People found this is helpful
Advertisement