我有一部分这样的代码
import turtle
turtle.bgcolor("green")
draw = turtle.Turtle()
draw.speed(1000000)
draw.hideturtle()
draw.pensize(3)
draw.color("white")
def Board (a, x, y, size):
draw.pu()
draw.goto(x, y)
draw.pd()
for i in range (0, 4):
draw.forward(size)
draw.right(90)
x =-40
y = -40
size = 40
for i in range (0, 10):
for j in range (0, 10):
Board (draw, x + j*size, y + i*size, size)
turtle.done()
像这样
import tkinter
import tkinter.messagebox
window = tkinter.Tk()
def Button_click ():
tkinter.messagebox.showinfo("Game", "Tic Tac Toe")
button = tkinter.Button(window, text = "Play!", command = Button_click)
button.pack()
window.mainloop()
因为我正在尝试创建一个带有按钮的窗口来进入 TicTacToe 游戏(我还没有完成其余的,只是完成了棋盘)。有什么办法可以将turtle和tkinter结合起来吗? 谢谢你
是的。 Python Turtle 在较大的 tkinter 程序中以两种模式运行:“独立”和“嵌入”。使用嵌入海龟时,您可以使用 Turtle
、Screen
和可选的
RawTurtle
,而不是 TurtleScreen
和 ScrolledCanvas
。您可以根据需要构建 tkinter 界面,使用 Canvas 来包含海龟图形。您可以通过在 SO 中搜索 RawTurtle
来找到在 tkinter 中嵌入海龟的示例。这是使用嵌入式和
独立编写的相同代码的示例。 当 cdlane 回答你的问题时,我正在玩你的代码!正如 cdlane 所说,我用“RawTurtle”替换了“turtle”,并将按钮放在与画布相同的窗口上。在放置物品时,我更喜欢使用网格而不是打包,因为我觉得我有更多的控制权。
好的,我明白了,但是如果我创建了一个库(像这样)怎么办:
Toit 类(乌龟):
def __init__(self,x,y,deg):
super().__init__()
self.hideturtle()
self.speed(0)
self.x = x
self.y = y
self.deg = deg
def draw_toit(self, model=int,ind=float):
self.pu()
self.goto(self.x,self.y)
self.setheading(self.deg)
if model is None:
mod = randint(1, 3)
else:
mod = model
self.pendown()
if mod == 2:
self.pensize(2)
self.fillcolor('#000000')
self.begin_fill()
self.left(25)
for i in range(2):
self.forward(78*ind)
self.right(50)
self.end_fill()
elif mod == 3:
self.pensize(2)
self.fillcolor('#000000')
self.begin_fill()
for i in range(2):
self.forward(160*ind)
self.circle(2*ind, 180)
self.end_fill()
elif mod == 1:
self.pensize(2)
self.fillcolor('#000000')
self.begin_fill()
for i in range(2):
self.forward(140*ind)
self.circle(2*ind, 180)
self.end_fill()
self.penup()
self.goto(self.x,self.y)
self.setheading(self.deg)
`
我想在一个单独的程序中将这个“toit”绘制到 tkinter 窗口中。这怎么可能?