Windows 如何组合Tkinter窗口?
我有两组代码,第一部分是海龟图形窗口,第二部分是Tkinter窗口。我应该如何将这两个部分合并到一个窗口中 我的第一部分代码Windows 如何组合Tkinter窗口?,windows,python-2.7,tkinter,turtle-graphics,Windows,Python 2.7,Tkinter,Turtle Graphics,我有两组代码,第一部分是海龟图形窗口,第二部分是Tkinter窗口。我应该如何将这两个部分合并到一个窗口中 我的第一部分代码 from turtle import * def move(thing, distance): thing.circle(250, distance) def main(): rocket = Turtle() ISS = Turtle() bgpic('space.gif') register_shape("ISSicon.g
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()
第二部分
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()
非常感谢;) 嗯,我不确定把它们混在一起是不是个好主意。这个
turtle
模块经常使用来自Tcl的update
命令,当在混合中添加更多涉及的代码时,这很可能会导致问题(显然turtle
可以接受它,这很好)。无论如何,混合两者的一种方法是使用RawTurtle
代替Turtle
,这样您就可以传递自己的Canvas
,而Turtle
将根据需要进行调整
下面是一个例子(基本上,我还将无限循环替换为无限重新调度):
谢谢,这正是我想要的,Tkinter.标签现在里面有文字“hello”,是否可以用turtle1的位置、turtle2的位置和计时器(或计算机上的时间)替换标签?(如果不能将这些变量放在一行中,三行分开也可以)再次感谢;)我见过有人用entrybox来做这件事,但遗憾的是我不知道它的代码…@user2006082这当然是可能的,它不需要输入框。只需获取海龟的位置并更新标签的文本即可显示。@user2006082
mylabel['text']='somenewtext'
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()