button in einer schleife bewegen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
jan.b
User
Beiträge: 195
Registriert: Mittwoch 9. August 2017, 17:12

Code: Alles auswählen


from tkinter import*
tk = Tk()
import webbrowser
import random
import time
canvas = Canvas(tk, width=400, height=400, bg='yellow')
canvas.pack()
import turtle
import random


button1 = Button(tk, text="hi")

i = random.randint(0, 400)
v = random.randint(0, 400)
button1.place(x=i, y=v) 
        


wie kann man diesen vorgang in eine schleife setzten?

Code: Alles auswählen

button1 = Button(tk, text="hi")

i = random.randint(0, 400)
v = random.randint(0, 400)
button1.place(x=i, y=v) 
wenn ich da einfach eine while schleife drum mache, passiert einfach gar nichts.
Benutzeravatar
noisefloor
User
Beiträge: 3843
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

der gezeigte Code macht auch nichts... da fehlt zumindest der mainloop von Tkinter.

Eine while-Schleife kannst du nicht in Tkinter einbauen, weil du dann den mainlopp blockierst -> ganz schlechte Idee.

Die Lösung auch hier: die `after()` Methode das Top-Level Windows. Dazu gibt es gefühlt 1000 Threads hier im Forum, weil die Frage mindestens 1x pro Woche kommt.

Gruß, noisefloor
jan.b
User
Beiträge: 195
Registriert: Mittwoch 9. August 2017, 17:12

was ist und tut ein mainloop?
Benutzeravatar
noisefloor
User
Beiträge: 3843
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

der kontrolliert alles und jedes in der GUI.

Aber jetzt mal im Ernst: du hast schon X Fragen zu Tkinter gestellt und Code gepostet - inkl. solchem, wo der mainlopp() - der unter Tkinter ja auch genau so heißt - explizit vorkommt. Liest du eigentlich den Code, den du schreibst? Hast du überhaupt schon mal versucht, den Code zu verstehen, den du schreibst? Mit stumpfen C&P oder abtippen kommt man nun mal nicht weit...

Gruß, noisefloor
jan.b
User
Beiträge: 195
Registriert: Mittwoch 9. August 2017, 17:12

noisefloor hat geschrieben:Hallo,

der kontrolliert alles und jedes in der GUI.

Aber jetzt mal im Ernst: du hast schon X Fragen zu Tkinter gestellt und Code gepostet - inkl. solchem, wo der mainlopp() - der unter Tkinter ja auch genau so heißt - explizit vorkommt. Liest du eigentlich den Code, den du schreibst? Hast du überhaupt schon mal versucht, den Code zu verstehen, den du schreibst? Mit stumpfen C&P oder abtippen kommt man nun mal nicht weit...

Gruß, noisefloor
wenn ich was nicht verstehe frage ich.
Antworten