logo
LIS PUBLICA
☰
  • Новое
  • Горячее
  • Авторское
  • Лучшее
  • Обсуждаемое
ne_takoi
ne_takoi Опубликовано 20 часов назад
  • [моё]
  • Программирование
  • Быдлокодинг
  • Моргание

Моргалка

    import tkinter as lol     # импорт какой-то хуйни чтоб рисовать окна
import time as t          # время тут чтобы ждать
import threading as th    # это чтоб код не зависал, а делал моргание отдельно
from PIL import Image, ImageTk as imgtool  # картинки прикручивать

mmm = 3.78                #  пиксели на мм
zzz = int(100 * mmm)      # квадрат будет большой

picfile = "/home/dicks/my_dick/penis.png"  # картинка для 

uuu = t.time()            # время стартa

def timetxt():            # сколько прошло
    e = int(t.time() - uuu)
    m, s = divmod(e, 60)  # делим минуты и секунды
    return f"{m:02}:{s:02}"

def blinky(col):          # это моргалка квадратом
    def go():
        for _ in range(10):         # моргнёт 10 раз
            c.itemconfig(r, fill=col)     # красим квадрат
            c.itemconfig(txt, text=timetxt())  # текст тоже двигаем
            o.update()                     # обновляем окно
            t.sleep(0.5)                   # ждём полсекунды
            c.itemconfig(r, fill="white")  # убираем цвет
            c.itemconfig(txt, text=timetxt())
            o.update()
            t.sleep(0.5)
    th.Thread(target=go).start()   # запускаем моргалку в отдельном потоке

def picblink():           # это моргалка картинкой
    def go():
        v = True
        while True:              # вхиле, пока окно не убьёшь
            c.itemconfig(pic, state="normal" if v else "hidden")  # показываем/скрываем
            v = not v
            o.update()
            t.sleep(0.5)
    th.Thread(target=go, daemon=True).start()

def down(sec=5):          # обратный отсчёт
    for k in range(sec, -1, -1):
        m, s = divmod(k, 60)
        c.itemconfig(txt, text=f"{m:02}:{s:02}")   # показываем таймер
        o.update()
        t.sleep(1)

def run():                # главный сценарий
    global uuu
    down(5)               # ждём 5 секунд и показываем обратный отсчёт
    uuu = t.time()        # сбрасываем время
    t.sleep(2)            # ждём 2 сек
    blinky("red")         # красный моргает
    t.sleep(2)
    blinky("pink")        # потом розовый моргает
    t.sleep(2)
    blinky("blue")        # потом синий моргает
    t.sleep(2)
    picblink()            # в конце запускаем моргание картинкой

o = lol.Tk()              # создаём окно
o.title("xXxTimerxXx")    # нейминг топчик

c = lol.Canvas(o, width=zzz, height=zzz, bg="white")  # создаём холст
c.pack()
r = c.create_rectangle(0, 0, zzz, zzz, fill="white")  # рисуем квадрат

txt = c.create_text(       # добавляем текст посередине
    zzz//2, zzz//2,
    text="00:00",
    font=("Comic Sans MS", 42),
    fill="black"
)

p = imgtool.Image.open(picfile)   # опен пикчюре
p = p.resize((zzz, zzz), imgtool.LANCZOS)   # растягивай
pp = imgtool.PhotoImage(p)
pic = c.create_image(zzz//2, zzz//2, image=pp, state="hidden")  # кладём в холст, но прячем

th.Thread(target=run, daemon=True).start()   # запускаем таймер в отдельном потоке

o.bind("<Escape>", lambda e: o.destroy())    # Esc закрывает всё или крестиком

o.mainloop()         # запускаем программу

Читать дальше...
+
10
+10 / -0
-
3
[:|||:]
23
vervolph
vervolph Опубликовано 19 часов назад

Сайтоломатель детектид

+
2
+2 / -0
-
Ответить
Toster
Toster Опубликовано 17 часов назад

Магия какая то

+
1
+1 / -0
-
Ответить
Kilo_suslika
Kilo_suslika Опубликовано 13 часов назад

Из меня вышла черепаха...

+
1
+1 / -0
-
Ответить
Войти

Вход

Регистрация


Войти через Google
Порог горячего 6

Топ

Рандом

  • NapalmRain
    NapalmRain
    Уже всё поправил. Новые пользователи, впервые вошедшие через гугл будут перебрасываться на форму придумывания Ника. Имя из аккаунта гугла не подтягивается
    +4
  • Vanok
    Vanok
    А, вот этот звук. 5 инфарктов из 5!
    +4
  • rammdarksad
    rammdarksad
    Мне даже интересно, можно ли было на капи тупо пробел отправить...
    +2
©2025 Varius Soft
0.1.0b

0.1.0b

- Административные инструменты
- Собственный профиль
- Переход на профиль из комментариев
- Подсветка новых комментариев
- Правка мелких багов

0.0.4a

- Авторизация через гугл
- Модераторский функционал
- Просмотр статистики пользователя
- Голосование за баян
- Возможно призывать модераторов и пользователей из текста поста

0.0.3a

- Отправка комментария по ctrl+enter
- Уведомления в реальном времени
- Добавление «Ответов»
- Вход по логину и имейлу
- Конвертация изображений в webp
- Загрузка аватаров

0.0.2a

- Правки вёрстки
- Внедрение Горячего
- Отмена оценки

0.0.1a

- Регистрация и авторизация
- Базовая вёрстка
- Создание постов
- Создание комментариев
- Рандом и Топ комментов