python: как легко отобразить мигающий закрашенный кружок - PullRequest
0 голосов
/ 17 апреля 2020

Я новичок в python. Я пытаюсь получить мигающий красный круг (индикатор), если мой туннель vpn выключен и постоянно горит зеленым, если мой vpn работает.

Я пробовал:

#!/usr/bin/env python
import turtle

turtle.setup(100,150)

t = turtle.Turtle()
t.speed(0)
while True:
    #Python program to draw color filled circle in turtle programming
    t.begin_fill()
    t.fillcolor('red')
    t.circle(25)
    t.end_fill()
    t.begin_fill()
    t.fillcolor('white')
    t.circle(25)
    t.end_fill()
turtle.done()

, и он почти у цели, за исключением того, что для рисования круга требуется "много" времени. Есть ли другой лучший выход из этого? Кстати, возможно ли получить прозрачный фон?

Ответы [ 3 ]

1 голос
/ 19 апреля 2020

Давайте попробуем другой подход, используя событие ontimer() для управления скоростью мигания и мигая круглой черепахой вместо перерисовки каждый раз:

from turtle import Screen, Turtle

CURSOR_SIZE = 20

def blink():
    pen, fill = turtle.color()
    turtle.color(fill, pen)
    screen.ontimer(blink, 250)  # 1/4 second blink

screen = Screen()

turtle = Turtle()
turtle.hideturtle()
turtle.shape('circle')
turtle.shapesize(50 / CURSOR_SIZE)
turtle.color('red', 'white')
turtle.showturtle()

blink()

screen.exitonclick()
1 голос
/ 17 апреля 2020

Вы можете играть с помощью команды turtle.speed .

настройка t.speed(0) приводит к быстрому миганию.

0 голосов
/ 18 апреля 2020

Pygame делает это:

#!/usr/bin/env python

import pygame
import time

WHITE =     (255, 255, 255)
RED =       (255,   0,   0)
(width, height) = (40, 40)

background_color = WHITE

pygame.init()
screen = pygame.display.set_mode((width, height))
pygame.display.set_caption("VPN-Status")
screen.fill(background_color)
pygame.display.update()

while True:
    pygame.draw.circle(screen, RED, (20, 20), 20)
    pygame.display.update()
    time.sleep(0.25)
    pygame.draw.circle(screen, WHITE, (20, 20), 20)
    pygame.display.update()
    time.sleep(0.25)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...