Python:如何重置乌龟图形窗口

时间:2015-12-02 02:07:43

标签: python turtle-graphics

我正在使用乌龟制作一个二十一点游戏,每次我玩一只手龟只是打印在上一场比赛而不是清理窗口。是否有一种方法可以在调用窗口时关闭窗口,还是有另一种方法可以执行此操作?

3 个答案:

答案 0 :(得分:8)

我想澄清各种乌龟函数的作用,因为在本次讨论中存在误解,包括在当前接受的答案中,因为方法名称本身可能令人困惑:

turtle.mainloop() aka turtle.Screen().mainloop()将控制权交给tkinter的事件循环。通常,缺少turtle.Screen().mainloop()(或turtle.Screen().exitonclick()等)将导致窗口关闭,因为程序将结束,关闭所有内容。除非脚本是在Python IDLE -n中运行的,否则这个或其变体之一应该是turtle图形程序中的最后一个语句。

turtle.done()(不关闭窗口也不重置任何内容。)turtle.mainloop()的同义词

turtle.clear()删除这个乌龟所绘制的一切(不仅仅是最后一件事)。否则不会影响乌龟的状态。

turtle.reset()turtle.clear()然后重置这个龟的状态(即方向,位置等)

turtle.clearscreen()又名turtle.Screen().clear()删除所有绘图和所有海龟,将窗口重置为原始状态。

turtle.resetscreen()又名turtle.Screen().reset()将屏幕上的所有海龟重置为初始状态。

turtle.bye()又名turtle.Screen().bye()关闭海龟图形窗口。在调用它之后,我没有看到使用任何海龟图形命令的方法。

turtle.exitonclick()又名turtle.Screen().exitonclick()绑定屏幕点击事件后执行turtle.Screen().bye()调用turtle.Screen().mainloop()

目前尚不清楚你是否可以从乌龟内部关闭并重新打开图形窗口,而不会降到支撑龟的tkinter级别(和Zelle的graphics.py)

为了在二十一点游戏中开始新手,我猜你turtle.reset()turtle.resetscreen()是最好的选择。

答案 1 :(得分:0)

impl<SPI, REMAP, PINS, CH> DeviceDriver<SpiTxDma<SPI, REMAP, PINS, CH>>
where SpiTxDma<SPI, REMAP, PINS, CH>: WriteDma<&'static mut [u8], u8>,
      TxDma<SpiPayload<SPI, REMAP, PINS>, CH>: TransferPayload,
{
    pub fn send(&mut self) {
        if let (Some(spi), Some(buf)) = (self.spi.take(), self.buf.take()) {
            let transfer = spi.write(buf);
            let (buf, spi) = transfer.wait();
            self.buf = Some(buf);
            self.spi = Some(spi);
        }
    }
}

clears screen but turtle position does not change.

clears screen; turtle goes back to center

答案 2 :(得分:-2)

使用乌龟,它是lsm

如果您使用turtle.done()进行python,我建议使用John Zelle's Graphics Library。要关闭窗口,请使用graphics。如果您有兴趣,我已经链接了window.close()库的文档。