中国好同学为他的同学们编写了一个「惊喜点名系统」!!!

直接上代码:

import tkinter as tk
import random as rd
import tkinter.messagebox as tm
import sys

font_family = ""
font_size = ""
names = []
names_old = []
text = "惊喜点名"
is_passed = False
root = tk.Tk()


def light_copy(list1, list2):
    while len(list2) > 0:
        list2.pop()
    for i in list1:
        list2.append(i)


def open_file(file: str):
    global names
    try:
        with open(file, "r", encoding="utf-8") as f_obj:
            names = str(f_obj.read()).split("\n")
    except (FileNotFoundError, Exception):
        tm.showerror("错误", "文件出现问题")
        sys.exit()

    for i in names:
        if i == '':
            names.remove(i)
        elif len(i) < 4:
            index = names.index(i)
            names.remove(i)
            if len(i) == 3:
                i = " " * int((5 - len(i)) // 2) + i + " " * (5 - len(i) - int((4 - len(i)) // 2))
            elif len(i) == 2:
                i = " " * int((5 - len(i)) // 2 + 1) + i + " " * (5 - len(i) - int((4 - len(i)) // 2)+1)
            names.insert(index, i)
    light_copy(names, names_old)
    # print(names)


def cmd(btn):
    if len(names) <= len(names_old) // 5:
        light_copy(names_old, names)
    global is_passed, text
    if is_passed:
        names.remove(text)
        is_passed = False
        btn.config(fg="green")
        return
    else:
        btn.config(fg="black")
        is_passed = True
    while is_passed:
        text = rd.choice(names)
        btn.config(text=text)
        btn.update()
        root.update()


def moue_leave(master):
    master.attributes('-alpha', 0.1)


def mouse_enter(master):
    master.attributes('-alpha', 1)


def init():
    global font_family, font_size
    font_family = "黑体"
    font_size = 250
    root.iconbitmap("icon.ico")
    root.attributes('-topmost', 'true')
    root.bind("<Enter>", lambda events: mouse_enter(root))
    root.bind("<Leave>", lambda events: moue_leave(root))
    open_file("names.txt")


def guis():
    btn_name = tk.Button(root, text=text, font=("黑体", 250), command=lambda: cmd(btn_name), relief=tk.GROOVE)
    btn_name.pack(fill=tk.BOTH, expand=tk.YES)
    root.title("惊喜点名器-制作:伟大天才cgy")
    root.resizable(False, False)


if __name__ == '__main__':
    init()
    guis()
    root.mainloop()

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值