Chromebook下Turtle库窗口无法居中的问题求助
解决Chromebook上Turtle窗口居中问题
在ChromeOS环境下,直接设置startx=None和starty=None无法让Turtle窗口居中,这是因为该环境下Turtle对默认居中的处理逻辑存在差异。你可以通过手动计算屏幕中心坐标来实现窗口居中,具体方案如下:
实现步骤
- 借助Turtle底层的Tkinter接口获取屏幕尺寸
- 根据窗口的宽高,计算出居中所需的起始坐标
- 将计算得到的坐标传入
setup方法
修改后的main.py代码如下:
# Imports import time from turtle import Screen from player import Player from car_manager import CarManager from scoreboard import Scoreboard # Screen Setup screen = Screen() window_width = 600 window_height = 600 # 获取屏幕尺寸(通过Tkinter底层接口) screen_width = screen._root.winfo_screenwidth() screen_height = screen._root.winfo_screenheight() # 计算居中起始坐标 start_x = (screen_width - window_width) // 2 start_y = (screen_height - window_height) // 2 screen.setup(width=window_width, height=window_height, startx=start_x, starty=start_y) screen.tracer(0) # Class Setup turtle_player = Player() # Key Presses screen.listen() screen.onkey(turtle_player.forwards, "Up") # Main loop game_is_on = True while game_is_on: time.sleep(0.1) screen.update()
额外说明
- 原代码遗漏了
time模块的导入,已补充,否则会触发NameError - 通过
screen._root访问Tkinter根窗口是Turtle库的常规用法,无需额外导入Tkinter - 该方法兼容性强,在ChromeOS及其他桌面系统中均可生效
内容的提问来源于stack exchange,提问作者Ahmed Fattah
相关产品推荐
相关产品推荐

