## 显示可视化字幕
def show(string,mode = 0):
"""
:param string: 字符串
:param mode: 模式 0 无 1 淡入淡出
"""
import tkinter as tk
import time
from threading import Thread
## 模式 0 正常模式
def mode0(string):
top = tk.Tk()
top.wm_title("可视化小组件")
top.geometry('500x500')
top.overrideredirect(True) # 无边框
bg_color = '#FF0001'
top.config(bg=bg_color) ##背景色
top.wm_attributes('-transparentcolor', bg_color)
top.wm_attributes("-topmost", True) # 窗口置顶
top.attributes('-alpha', 1) # 设置透明度,0.0 完全透明,1.0 完全不透明
label = tk.Label(top, text=string, font=("宋体", 30), fg="red", bg=bg_color, width=0, height=0)
# 定义鼠标进入Label时的事件处理函数
hover_fg_color = bg_color
default_fg_color = "red"
def on_enter(event): # 定义鼠标进入Label时的事件处理函数
label.config(fg=hover_fg_color) # 改变字体颜色为悬停时的颜色
top.destroy()
def on_leave(event): # 定义鼠标离开Label时的事件处理函数
label.config(fg=default_fg_color) # 恢复字体颜色为默认颜色
# def on_label_click(event):
# top.destroy()# 关闭窗口
# 为Label绑定点击事件
# label.bind("<Button-1>", on_label_click)
# 绑定<Enter>和<Leave>事件到Label控件
label.bind("<Enter>", on_enter)
label.bind("<Leave>", on_leave)
label.place(x=200, y=200, anchor='nw') # 这个要放在.bind后面 # label.pack(pady=20, padx=200) # 使用pack布局管理器放置Label
def close_gui():
top.destroy() # 关闭窗口
top.after(1000, close_gui)
top.mainloop()
## tkinter运用子线程显示淡入淡出透明界面显示文本、动画
def mode1(string):
top = tk.Tk()
top.wm_title("可视化小组件")
top.geometry('500x500')
top.overrideredirect(True) # 无边框
bg_color = '#FF0001'
top.config(bg=bg_color) ##背景色
top.wm_attributes('-transparentcolor', bg_color)
top.wm_attributes("-topmost", True) # 窗口置顶
top.attributes('-alpha', 0) # 设置透明度,0.0 完全透明,1.0 完全不透明
label = tk.Label(top, text=string, font=("宋体", 30), fg="red", bg=bg_color, width=0, height=0)
# 定义鼠标进入Label时的事件处理函数
hover_fg_color = bg_color
default_fg_color = "red"
def on_enter(event): # 定义鼠标进入Label时的事件处理函数
label.config(fg=hover_fg_color) # 改变字体颜色为悬停时的颜色
top.destroy()
def on_leave(event): # 定义鼠标离开Label时的事件处理函数
label.config(fg=default_fg_color) # 恢复字体颜色为默认颜色
# def on_label_click(event):
# top.destroy()# 关闭窗口
# 为Label绑定点击事件
# label.bind("<Button-1>", on_label_click)
# 绑定<Enter>和<Leave>事件到Label控件
label.bind("<Enter>", on_enter)
label.bind("<Leave>", on_leave)
label.place(x=200, y=200, anchor='nw') # 这个要放在.bind后面 # label.pack(pady=20, padx=200) # 使用pack布局管理器放置Label
## 淡出
def close_gui():
for i in reversed(range(1, 21)):
time.sleep(0.5 / 20)
top.attributes('-alpha', 1 / 20 * i)
top.destroy() # 关闭窗口
## 淡入
def start_gui():
for i in range(1, 21):
time.sleep(0.5 / 20)
top.attributes('-alpha', 1 / 20 * i)
top.after(500, start_gui)
top.after(1000, close_gui)
top.mainloop()
if mode == 0:
Thread(target=mode0, args=(str(string),)).start()
elif mode == 1:
Thread(target=mode1, args=(str(string),)).start()
import time
from datetime import datetime
for i in range(10):
time.sleep(1)
show("时间:" + str(datetime.fromtimestamp(time.time()).strftime("%H:%M:%S")),1)
## 显示可视化字幕
def show(string,mode = 0):
"""
:param string: 字符串
:param mode: 模式 0 无 1 淡入淡出
"""
import tkinter as tk
import time
from threading import Thread
## 模式 0 正常模式
def mode0(string):
top = tk.Tk()
top.wm_title("可视化小组件")
top.geometry('500x500')
top.overrideredirect(True) # 无边框
bg_color = '#FF0001'
top.config(bg=bg_color) ##背景色
top.wm_attributes('-transparentcolor', bg_color)
top.wm_attributes("-topmost", True) # 窗口置顶
top.attributes('-alpha', 1) # 设置透明度,0.0 完全透明,1.0 完全不透明
label = tk.Label(top, text=string, font=("宋体", 30), fg="red", bg=bg_color, width=0, height=0)
# 定义鼠标进入Label时的事件处理函数
hover_fg_color = bg_color
default_fg_color = "red"
def on_enter(event): # 定义鼠标进入Label时的事件处理函数
label.config(fg=hover_fg_color) # 改变字体颜色为悬停时的颜色
top.destroy()
def on_leave(event): # 定义鼠标离开Label时的事件处理函数
label.config(fg=default_fg_color) # 恢复字体颜色为默认颜色
# def on_label_click(event):
# top.destroy()# 关闭窗口
# 为Label绑定点击事件
# label.bind("<Button-1>", on_label_click)
# 绑定<Enter>和<Leave>事件到Label控件
label.bind("<Enter>", on_enter)
label.bind("<Leave>", on_leave)
label.place(x=200, y=200, anchor='nw') # 这个要放在.bind后面 # label.pack(pady=20, padx=200) # 使用pack布局管理器放置Label
def close_gui():
top.destroy() # 关闭窗口
top.after(1000, close_gui)
top.mainloop()
## tkinter运用子线程显示淡入淡出透明界面显示文本、动画
def mode1(string):
top = tk.Tk()
top.wm_title("可视化小组件")
top.geometry('500x500')
top.overrideredirect(True) # 无边框
bg_color = '#FF0001'
top.config(bg=bg_color) ##背景色
top.wm_attributes('-transparentcolor', bg_color)
top.wm_attributes("-topmost", True) # 窗口置顶
top.attributes('-alpha', 0) # 设置透明度,0.0 完全透明,1.0 完全不透明
label = tk.Label(top, text=string, font=("宋体", 30), fg="red", bg=bg_color, width=0, height=0)
# 定义鼠标进入Label时的事件处理函数
hover_fg_color = bg_color
default_fg_color = "red"
def on_enter(event): # 定义鼠标进入Label时的事件处理函数
label.config(fg=hover_fg_color) # 改变字体颜色为悬停时的颜色
top.destroy()
def on_leave(event): # 定义鼠标离开Label时的事件处理函数
label.config(fg=default_fg_color) # 恢复字体颜色为默认颜色
# def on_label_click(event):
# top.destroy()# 关闭窗口
# 为Label绑定点击事件
# label.bind("<Button-1>", on_label_click)
# 绑定<Enter>和<Leave>事件到Label控件
label.bind("<Enter>", on_enter)
label.bind("<Leave>", on_leave)
label.place(x=200, y=200, anchor='nw') # 这个要放在.bind后面 # label.pack(pady=20, padx=200) # 使用pack布局管理器放置Label
## 淡出
def close_gui():
for i in reversed(range(1, 21)):
time.sleep(0.5 / 20)
top.attributes('-alpha', 1 / 20 * i)
top.destroy() # 关闭窗口
## 淡入
def start_gui():
for i in range(1, 21):
time.sleep(0.5 / 20)
top.attributes('-alpha', 1 / 20 * i)
top.after(500, start_gui)
top.after(1000, close_gui)
top.mainloop()
if mode == 0:
Thread(target=mode0, args=(str(string),)).start()
elif mode == 1:
Thread(target=mode1, args=(str(string),)).start()
import time
from datetime import datetime
for i in range(10):
time.sleep(1)
show("时间:" + str(datetime.fromtimestamp(time.time()).strftime("%H:%M:%S")),1)