最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Python文本滚动播放器实现代码示例
时间:2022-06-25 02:04:45 编辑:袖梨 来源:一聚教程网
本篇文章小编给大家分享一下Python文本滚动播放器实现代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。
效果
双击开始播放,继续双击可以加速播放
右键可以弹出菜单:播放、暂停、退出
左键可以拖动窗口
代码
from tkinter import *
import time
import tkinter as tk
file = "待播放文本.txt"
text=" "
bgcolor = '#000000'
fgcolor = '#FFFFFF'
def getText():
global text
# 读
with open(file, "r",encoding='utf-8') as f:
# 按字节读
text = f.read()
#获取一行
getText()
root = Tk()
# 窗口设定为无边框
root.overrideredirect(True)
# 窗口前置
root.wm_attributes("-topmost", 1)
# 窗口属性 透明度设置
root.attributes("-alpha", 0.8)
# 窗口标题
# root.title("文本播放器")
# 窗口大小
root.geometry("200x35+100+100")
# 更新显示文本
show_str = StringVar(root)
# 初始显示文本
show_str.set("双击播放")
# 源字符
source_str = text
# 播放标记
playflag = True
# 播放位置
pos = 0
# 滚动
def marquee(widget):
#字符宽度
text# 源字符长度
strlen = len(source_str)
# 引用全局变量
global pos
# 如果字符长度-播放位置 strlen:
#播放位置设为0
pos = 0
# 引用全局变量
global stopflag
# 如果当前为播放状态
if playflag:
# 睡眠0.3秒后执行滚动函数
widget.after(300, marquee, widget)
# 创建标签
show_lb = Label(root, textvariable=show_str,, fg=fgcolor, bg=bgcolor, text=text, font=("Consolas", 10))
# 设定标签位置
show_lb.place(x=0, y=0, , )
def doubleClicktoPlay(event):
global playflag
# 播放
playflag = True
marquee(show_lb)
def playStart():
global playflag
# 播放
playflag = True
marquee(show_lb)
def playStop():
global playflag
# 暂停播放
playflag = False
# 创建弹出式菜单
menu = tk.Menu(root, tearoff=0)
# 为菜单添加命令标签
menu.add_command(label="播放", command=playStart)
menu.add_command(label="暂停", command=playStop)
menu.add_command(label="退出", command=exit)
def popUpMenu(event):
#在鼠标点击的位置弹出菜单
menu.post(event.x_root, event.y_root)
# 为消息事件(按键、点击)绑定函数
root.bind_all("", popUpMenu)
def moveStart(event):
global startX, startY
#获取鼠标的点击位置的x、y
startX = event.x
startY = event.y
def move(event):
#新坐标=鼠标点击坐标+窗口坐标-初始坐标
new_x = (event.x) + root.winfo_x() - startX
new_y = (event.y) + root.winfo_y() - startY
s = "200x35+" + str(new_x) + "+" + str(new_y)
# 重新设置窗口大小及其位置
root.geometry(s)
# 为消息事件(按键、点击)绑定函数
root.bind_all("", moveStart)
root.bind_all("", move)
root.bind_all("", doubleClicktoPlay)
root.mainloop()
注:
如果文本有换行符,切换不会很流畅
可用此方法删除换行符
相关文章
- 勇者斗恶龙怪兽篇3史莱姆将军合成攻略 12-25
- 种子磁力搜索器安卓下载-磁力搜索器种子最新版本 12-25
- 勇者斗恶龙怪兽篇3水晶史莱姆合成路线攻略图 12-25
- 原神4.5复刻角色一览 4.5返场角色都有谁 12-25
- 原神4.4卡池角色一览 4.4复刻角色都有谁 12-25
- 小肥羊漫画无广告版安装包下载-小肥羊漫画app最新版安卓版免费下载 12-25

