新年红包
2026-02-18 16:46:04
发布于:浙江
过年了,想不想做个红包?
顺便把你的仇人坑一遍?
完全可以!
先安装 IDLE ,然后 File->New file->写以下代码:
import tkinter as tk
import random
flag=True
def zuobi(event):
global flag
flag=not flag
def on_button_click(event):
global l
#准备让典红温
if flag:
a=random.uniform(0,0.1)
if a>=0.01:
l.config(text=f"恭喜!你抢到了{a:.2f}元")
else:
l.config(text="手慢啦!没抢到")
#自己的作弊模式
else:
a=random.uniform(15,20)
l.config(text=f"恭喜!抢到了{a:.2f}元")
def on_button_press(event):
# 鼠标按下时的视觉反馈
canvas.itemconfig(circle, fill="orange")
on_button_click(event)
def on_button_release(event):
# 鼠标释放时恢复颜色
canvas.itemconfig(circle, fill="yellow")
# --- 1. 创建主窗口并设置为红色 ---
root = tk.Tk()
root.title("抢红包")
root.geometry("300x300")
# 🎨 核心代码:设置窗口背景为红色 (不使用Pillow)
root.configure(bg="red")
# --- 2. 使用 Canvas 绘制圆形按钮 ---
# 注意:为了保持圆形,Canvas 的宽高必须相等
canvas_width = 100
canvas_height = 100
# 创建画布,背景设为透明感(或者与窗口同色),边框设为0
canvas = tk.Canvas(
root,
width=canvas_width,
height=canvas_height,
bg="red", # 画布背景色与窗口一致,掩盖“矩形底座”
highlightthickness=0 # 去除选中时的虚线框
)
canvas.pack(expand=True)
# 绘制圆形
# create_oval(x1, y1, x2, y2, ...)
# 坐标 (10,10, 90,90) 留了10像素的边距,防止贴边
circle = canvas.create_oval(
10, 10, canvas_width-10, canvas_height-10,
fill="yellow", # 填充色
outline="red", # 边框色
width=2 # 边框宽度
)
# --- 3. 为圆形绑定事件 ---
# 注意:这里绑定的是整个 Canvas,因为 Tkinter 无法直接给“图形”绑定事件,
# 但因为我们 Canvas 里只有圆,且背景色与窗口一致,视觉上就是圆在响应
canvas.bind("<Button-1>", on_button_click) # 左键点击
canvas.bind("<ButtonPress-1>", on_button_press) # 按下
canvas.bind("<ButtonRelease-1>", on_button_release) # 释放
root.bind("<KeyRelease-a>",zuobi)
root.bind("<KeyRelease-A>",zuobi)
# --- 4. 可选:添加文字 ---
# 如果你想在圆圈里加字,可以用 create_text
canvas.create_text(canvas_width/2, canvas_height/2, text="開", fill="black")
l=tk.Label(root,text="",bg="red")
l.pack()
root.mainloop()
全部评论 1
为了罐头,点赞+评论
2天前 来自 浙江
0哟,我刚发你就评论了!要不要试一试
2天前 来自 浙江
0??
2天前 来自 浙江
0nonono,怕电脑被干废
2天前 来自 浙江
0



























有帮助,赞一个