python表白程序,无法拒绝

在这里插入图片描述

# coding=gbk
import tkinter as tk
import random
import tkinter.messagebox as messagebox

# 创建主窗口并隐藏
root = tk.Tk()
root.attributes('-alpha', 0)  # 设置主窗口为不可见

# 表白内容
message = "做我女朋友好不好?"

# 获取屏幕宽度和高度
screen_width = root.winfo_screenwidth()
screen_height = root.winfo_screenheight()


# 创建弹框函数
def create_popup():
    popup = tk.Toplevel(root)
    popup.geometry("300x150")  # 弹框大小
    popup.title("表白弹框")
    popup.configure(bg='pink')  # 设置弹框背景颜色为粉色

    # 计算弹框位置,确保不超出屏幕边界
    x = random.randint(0, screen_width - 300)
    y = random.randint(0, screen_height - 150)

    popup.geometry(f"+{x}+{y}")  # 设置弹框位置

    # 创建Canvas
    canvas = tk.Canvas(popup, bg='pink', highlightthickness=0)
    canvas.pack(expand=True, fill="both")

    # 创建Label并设置字体大小以铺满Canvas
    label = tk.Label(canvas, text=message, font=("Helvetica", 18), bg='pink', wraplength=260, justify="center")
    canvas.create_window(150, 60, window=label)

    # 创建按钮框架
    button_frame = tk.Frame(canvas, bg='pink')
    canvas.create_window(150, 110, window=button_frame)

    # 创建同意按钮
    agree_button = tk.Button(button_frame, text="同意", command=on_agree)
    agree_button.pack(side="left", padx=20)

    # 创建拒绝按钮
    refuse_button = tk.Button(button_frame, text="拒绝", command=lambda: on_refuse(popup))
    refuse_button.pack(side="left", padx=20)

    # 让弹框始终保持在最顶层
    popup.attributes('-topmost', True)

    # 设置弹框关闭事件
    popup.protocol("WM_DELETE_WINDOW", lambda: on_close(popup))


# 同意按钮的操作
def on_agree():
    messagebox.showinfo("提示", "我喜欢你")
    root.quit()


# 拒绝按钮的操作
def on_refuse(popup):
    popup.destroy()  # 清除原弹框
    create_popup()  # 创建新的弹框


# 弹框关闭事件的操作
def on_close(popup):
    popup.destroy()  # 清除原弹框
    create_popup()  # 创建新的弹框


# 创建第一个弹框
create_popup()

root.mainloop()




  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值