0

我是 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()

它几乎就在那里,除了画圆需要“很长时间”。还有其他更好的方法吗?顺便说一句,是否可以获得透明背景?

4

3 回答 3

1

你可以摆弄turtle.speed命令。

设置t.speed(0)会导致快速闪烁。

于 2020-04-17T15:25:18.703 回答
1

让我们尝试一种不同的方法,使用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()
于 2020-04-19T06:16:51.643 回答
0

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)
于 2020-04-18T00:42:52.313 回答