Полноэкранный мой Python Черепаха Холст без изменения размера - PullRequest
0 голосов
/ 25 мая 2018

У меня есть код, который устанавливает холст черепахи на 640x480.Я хочу, чтобы он был в полноэкранном режиме без изменения его ширины и высоты.Это вообще возможно?Как состояние Ткинтера увеличено?Вот мой код.

import turtle
import tkinter as tk

ui = tk.Tk()
ui.state('zoomed') #zoom the tkinter
canvas = tk.Canvas(master = ui, width = 640, height = 480) #set canvas size in tkinter
canvas.pack()
t = turtle.RawTurtle(canvas)

1 Ответ

0 голосов
/ 25 мая 2018

Вы можете установить виртуальные координаты с помощью setworldcoordinates(), чтобы сохранить беллетристику 640 x 480 независимо от фактического размера окна:

import tkinter as tk
from turtle import RawTurtle, TurtleScreen, ScrolledCanvas

width, height = 640, 480

root = tk.Tk()

# We're not scrolling but ScrolledCanvas has useful features
canvas = ScrolledCanvas(root)
canvas.pack(fill=tk.BOTH, expand=tk.YES)

screen = TurtleScreen(canvas)
root.state('zoomed')  # when you call this matters, be careful
screen.setworldcoordinates(-width / 2, -height / 2, width / 2 - 1, height / 2 - 1)

turtle = RawTurtle(screen)

turtle.penup()
turtle.sety(-230)
turtle.pendown()

turtle.circle(230)  # circle that nearly fills our virtual screen

screen.mainloop()

Однако ваш круг может выглядеть как овал, когда вы отобразилиодин прямоугольник формы на другой и потерял исходное соотношение сторон.Если вы хотите увеличить одно из ваших измерений, чтобы сохранить соотношение сторон, увеличьте приведенный выше код с помощью следующего вычисления:

# ...
root.state('zoomed')  # when you call this matters, be careful

window_width, window_height = screen.window_width(), screen.window_height()

if window_width / width < window_height / height:
    height = window_height / (window_width / width)
else:
    width = window_width / (window_height / height)

screen.setworldcoordinates(-width / 2, -height / 2, width / 2 - 1, height / 2 - 1)
# ...

И ваш круг должен быть круглым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...