文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python如何实现文本滚动播放器

2023-06-14 19:54

关注

小编给大家分享一下Python如何实现文本滚动播放器,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

Python主要用来做什么

Python主要应用于:1、Web开发;2、数据科学研究;3、网络爬虫;4、嵌入式应用开发;5、游戏开发;6、桌面应用开发。

效果

Python如何实现文本滚动播放器

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):    #字符宽度    textwidth = 18    # 源字符长度    strlen = len(source_str)    # 引用全局变量    global pos    # 如果字符长度-播放位置<textwidth    if strlen - pos < textwidth:        # 设定显示的字符串为源字符串的(播放位置,播放位置+文本宽度)+ 源字符串的(0,10-字符串长度+播放位置)        show_str.set(source_str[pos:pos+textwidth] + source_str[0:textwidth - strlen + pos])    else:        # 如果大于textwidth,则播放(播放位置,播放位置+文本宽度)的字符        show_str.set(source_str[pos:pos+textwidth])    #播放位置+1    pos += 1    #如果播放位置大于字符串长度    if pos > strlen:        #播放位置设为0        pos = 0    # 引用全局变量    global stopflag    # 如果当前为播放状态    if playflag:        # 睡眠0.3秒后执行滚动函数        widget.after(300, marquee, widget)        # 创建标签show_lb = Label(root, textvariable=show_str,width=300, fg=fgcolor, bg=bgcolor, text=text, font=("Consolas", 10))# 设定标签位置show_lb.place(x=0, y=0, width=200, height=35) 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("<ButtonRelease-3>", 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("<Button-1>", moveStart)  root.bind_all("<B1-Motion>", move)root.bind_all("<Double-Button-1>", doubleClicktoPlay) root.mainloop()

注:

如果文本有换行符,切换不会很流畅

可用此方法删除换行符

以上是“Python如何实现文本滚动播放器”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯