Независимое от платформы рисование в режиме реального времени на холсте? - PullRequest
0 голосов
/ 20 июня 2019

Я хочу рисовать на холсте в режиме реального времени, возможно устанавливать отдельные пиксели, рисовать геометрические фигуры, такие как прямоугольники, и вставлять изображения.

Вот как я хочу, чтобы это выглядело:

from greatgui import Window, Canvas
from time import sleep

width = 640
height = 480

w = Window("My title", (width,height))
c = Canvas((width, height))

w.add(c)

i = 0

while True:
    c.putpixel((i, i), color=(255,255,255))
    i += 1
    w.update()
    sleep(0.1)

Недопустимо что-либо более сложное или дорогостоящее. Мне не повезло?

Я не нашел ни одного примера графического интерфейса, который не требует от меня:

  • создать десятки строк шаблонного кода и проверок платформы
  • установить что-нибудь дополнительное (особенно что-нибудь скомпилировать вручную!), Кроме как через pip
  • добавить несколько обратных вызовов в некоторые рамки
  • передать управление на любой основной цикл вообще
  • отказаться от всего комфорта модуля ImageDraw Подушки

1 Ответ

0 голосов
/ 20 июня 2019

Пока что https://www.pygame.org кажется хорошим выбором:

import pygame
from time import sleep

pygame.init()
pygame.display.set_caption("My title")

screen = pygame.display.set_mode((640,480))

background_color = (255, 255, 255)

i = 0
running = True
while running:
    screen.fill(background_color)

    pygame.draw.rect(screen, (255, 0, 0), pygame.Rect(i, i, 40, 30))
    i += 1

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    pygame.display.flip()
    sleep(0.1)

...