Comment combiner les fenêtres Tkinter?

J’ai deux groupes de codes et la première partie est une fenêtre graphique de tortue et la seconde partie est une fenêtre Tkinter. Comment dois-je assembler ces deux parties en une seule fenêtre?

Ma première partie du code

from turtle import * def move(thing, distance): thing.circle(250, distance) def main(): rocket = Turtle() ISS = Turtle() bgpic('space.gif') register_shape("ISSicon.gif") ISS.shape("ISSicon.gif") rocket.speed(10) ISS.speed(10) counter = 1 title("ISS") screensize(750, 750) ISS.hideturtle() rocket.hideturtle() ISS.penup() ISS.left(90) ISS.fd(250) ISS.left(90) ISS.showturtle() ISS.pendown() rocket.penup() rocket.fd(250) rocket.left(90) rocket.showturtle() rocket.pendown() rocket.fillcolor("white") while counter == 1: move(ISS, 3) move(rocket, 4) main() 

Deuxième partie

 from Tkinter import * control=Tk() control.title("Control") control.geometry("200x550+100+50") cline0=Label(text="").pack() cline1=Label(text="Speed (km/s)").pack() control.mainloop() 

Merci beaucoup 😉

Euh, je ne sais pas si les mélanger est une bonne idée. Ce module turtle utilise fréquemment la commande de update de Tcl, et cela causera très probablement des problèmes lorsque du code plus compliqué est ajouté dans le mixage (il est bon que apparemment la turtle puisse vivre avec). Quoi qu’il en soit, une façon de mélanger les deux est d’utiliser RawTurtle à la place de Turtle , pour que vous puissiez transmettre votre propre Canvas que la turtle adaptera à ses besoins.

Voici un exemple (j’ai aussi remplacé la boucle infinie par un re-planning infini, essentiellement):

 import Tkinter import turtle def run_turtles(*args): for t, d in args: t.circle(250, d) root.after_idle(run_turtles, *args) root = Tkinter.Tk() root.withdraw() frame = Tkinter.Frame(bg='black') Tkinter.Label(frame, text=u'Hello', bg='grey', fg='white').pack(fill='x') canvas = Tkinter.Canvas(frame, width=750, height=750) canvas.pack() frame.pack(fill='both', expand=True) turtle1 = turtle.RawTurtle(canvas) turtle2 = turtle.RawTurtle(canvas) turtle1.ht(); turtle1.pu() turtle1.left(90); turtle1.fd(250); turtle1.lt(90) turtle1.st(); turtle1.pd() turtle2.ht(); turtle2.pu() turtle2.fd(250); turtle2.lt(90) turtle2.st(); turtle2.pd() root.deiconify() run_turtles((turtle1, 3), (turtle2, 4)) root.mainloop()