您好,登錄后才能下訂單哦!
小編給大家分享一下Python如何實現文本滾動播放器,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
Python主要應用于:1、Web開發;2、數據科學研究;3、網絡爬蟲;4、嵌入式應用開發;5、游戲開發;6、桌面應用開發。
效果
雙擊開始播放,繼續雙擊可以加速播放
右鍵可以彈出菜單:播放、暫停、退出
左鍵可以拖動窗口
代碼
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如何實現文本滾動播放器”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。