中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python如何實現文本滾動播放器

發布時間:2021-04-26 14:50:21 來源:億速云 閱讀:332 作者:小新 欄目:開發技術

小編給大家分享一下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如何實現文本滾動播放器”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

西吉县| 二手房| 永康市| 合江县| 囊谦县| 西宁市| 江油市| 常山县| 新巴尔虎左旗| 祁东县| 兰溪市| 苏尼特右旗| 广宗县| 江安县| 门头沟区| 武义县| 惠安县| 册亨县| 陇川县| 宁夏| 祥云县| 乌鲁木齐市| 新安县| 鄂州市| 郸城县| 南平市| 阿城市| 本溪市| 青龙| 凤山县| 富裕县| 旬阳县| 长泰县| 永胜县| 延川县| 金溪县| 肃宁县| 高密市| 镇赉县| 蓝田县| 军事|