最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python 文本滾動(dòng)播放器的實(shí)現(xiàn)代碼

 更新時(shí)間:2021年04月25日 14:09:59   作者:海 月  
這篇文章主要介紹了Python 文本滾動(dòng)播放器的實(shí)現(xiàn)代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

效果

雙擊開(kāi)始播放,繼續(xù)雙擊可以加速播放

右鍵可以彈出菜單:播放、暫停、退出

左鍵可以拖動(dòng)窗口

代碼

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:
        # 按字節(jié)讀
        text = f.read()    
#獲取一行
getText()
root = Tk()
# 窗口設(shè)定為無(wú)邊框
root.overrideredirect(True)
# 窗口前置
root.wm_attributes("-topmost", 1)
# 窗口屬性 透明度設(shè)置
root.attributes("-alpha", 0.8)
# 窗口標(biāo)題
# root.title("文本播放器")
# 窗口大小
root.geometry("200x35+100+100")
# 更新顯示文本
show_str = StringVar(root)
# 初始顯示文本
show_str.set("雙擊播放")
# 源字符
source_str = text
# 播放標(biāo)記
playflag = True
 
# 播放位置
pos = 0
# 滾動(dòng)
def marquee(widget):
    #字符寬度
    textwidth = 18
    # 源字符長(zhǎng)度
    strlen = len(source_str)
    # 引用全局變量
    global pos
    # 如果字符長(zhǎng)度-播放位置<textwidth
    if strlen - pos < textwidth:
        # 設(shè)定顯示的字符串為源字符串的(播放位置,播放位置+文本寬度)+ 源字符串的(0,10-字符串長(zhǎng)度+播放位置)
        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
    #如果播放位置大于字符串長(zhǎng)度
    if pos > strlen:
        #播放位置設(shè)為0
        pos = 0
    # 引用全局變量
    global stopflag
    # 如果當(dāng)前為播放狀態(tài)
    if playflag:
        # 睡眠0.3秒后執(zhí)行滾動(dòng)函數(shù)
        widget.after(300, marquee, widget)
        
# 創(chuàng)建標(biāo)簽
show_lb = Label(root, textvariable=show_str,width=300, fg=fgcolor, bg=bgcolor, text=text, font=("Consolas", 10))
# 設(shè)定標(biāo)簽位置
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
 
# 創(chuàng)建彈出式菜單
menu = tk.Menu(root, tearoff=0)
# 為菜單添加命令標(biāo)簽
menu.add_command(label="播放", command=playStart) 
menu.add_command(label="暫停", command=playStop)
menu.add_command(label="退出", command=exit)
 
def popUpMenu(event):
        #在鼠標(biāo)點(diǎn)擊的位置彈出菜單
        menu.post(event.x_root, event.y_root)
 
# 為消息事件(按鍵、點(diǎn)擊)綁定函數(shù)
root.bind_all("<ButtonRelease-3>", popUpMenu) 
 
def moveStart(event):
    global startX, startY
    #獲取鼠標(biāo)的點(diǎn)擊位置的x、y
    startX = event.x
    startY = event.y
 
def move(event):
     #新坐標(biāo)=鼠標(biāo)點(diǎn)擊坐標(biāo)+窗口坐標(biāo)-初始坐標(biāo)
    new_x = (event.x) + root.winfo_x() - startX
    new_y = (event.y) + root.winfo_y() - startY
    s = "200x35+" + str(new_x) + "+" + str(new_y)
    # 重新設(shè)置窗口大小及其位置
    root.geometry(s)
    
# 為消息事件(按鍵、點(diǎn)擊)綁定函數(shù)
root.bind_all("<Button-1>", moveStart)  
root.bind_all("<B1-Motion>", move)
root.bind_all("<Double-Button-1>", doubleClicktoPlay) 
root.mainloop()

注:

如果文本有換行符,切換不會(huì)很流暢

可用此方法刪除換行符

到此這篇關(guān)于Python 文本滾動(dòng)播放器的文章就介紹到這了,更多相關(guān)Python滾動(dòng)播放器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python實(shí)現(xiàn)圖片上添加圖片

    python實(shí)現(xiàn)圖片上添加圖片

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)圖片上添加圖片,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • python機(jī)器學(xué)習(xí)使數(shù)據(jù)更鮮活的可視化工具Pandas_Alive

    python機(jī)器學(xué)習(xí)使數(shù)據(jù)更鮮活的可視化工具Pandas_Alive

    今天我分享大家一款非常棒的動(dòng)畫(huà)可視化工具:Pandas_Alive,它以?matplotlib?繪圖為后端,不僅可以創(chuàng)建出令人驚嘆的動(dòng)畫(huà)可視化,而且使用方法非常簡(jiǎn)單。本文詳情如下
    2021-11-11
  • Python模擬鋼琴鍵盤(pán)實(shí)現(xiàn)演奏數(shù)鴨子歌曲

    Python模擬鋼琴鍵盤(pán)實(shí)現(xiàn)演奏數(shù)鴨子歌曲

    前幾天上課老師給我們講了兩個(gè)模塊,然后利用這兩個(gè)模塊來(lái)模擬鋼琴鍵盤(pán)去簡(jiǎn)單地演奏《數(shù)鴨子》今天來(lái)分享給大家,感興趣的可以了解一下
    2022-11-11
  • python實(shí)現(xiàn)宿舍管理系統(tǒng)

    python實(shí)現(xiàn)宿舍管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)宿舍管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • python os.listdir()亂碼解決方案

    python os.listdir()亂碼解決方案

    在本篇文章里小編給大家整理的是一篇關(guān)于python os.listdir()亂碼解決方案,對(duì)此有興趣的朋友們可以學(xué)習(xí)下。
    2021-01-01
  • 利用python/R語(yǔ)言繪制圣誕樹(shù)實(shí)例代碼

    利用python/R語(yǔ)言繪制圣誕樹(shù)實(shí)例代碼

    圣誕節(jié)快到了,分別用R和Python繪制了圣誕樹(shù)祝你們圣誕節(jié)快樂(lè),所以下面這篇文章主要給大家介紹了關(guān)于如何利用python/R繪制圣誕樹(shù)的相關(guān)資料,需要的朋友可以參考下
    2021-12-12
  • Python虛擬環(huán)境的創(chuàng)建和使用詳解

    Python虛擬環(huán)境的創(chuàng)建和使用詳解

    這篇文章主要給大家介紹了關(guān)于Python虛擬環(huán)境的創(chuàng)建和使用的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • python實(shí)現(xiàn)定時(shí)發(fā)送郵件到指定郵箱

    python實(shí)現(xiàn)定時(shí)發(fā)送郵件到指定郵箱

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)定時(shí)發(fā)送郵件到指定郵箱,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • Python辦公自動(dòng)化之定時(shí)郵件提醒和音視頻文件處理

    Python辦公自動(dòng)化之定時(shí)郵件提醒和音視頻文件處理

    這篇文章主要為大家詳細(xì)介紹了Python辦公自動(dòng)化中定時(shí)郵件提醒和音視頻文件處理的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),需要的小伙伴可以了解下
    2023-12-12
  • Python并發(fā)爬蟲(chóng)常用實(shí)現(xiàn)方法解析

    Python并發(fā)爬蟲(chóng)常用實(shí)現(xiàn)方法解析

    這篇文章主要介紹了Python并發(fā)爬蟲(chóng)常用實(shí)現(xiàn)方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11

最新評(píng)論

通江县| 邹城市| 南昌县| 中宁县| 襄垣县| 阿合奇县| 余干县| 日照市| 德阳市| 全州县| 苍梧县| 天气| 韶关市| 东乌| 颍上县| 修文县| 辽源市| 大余县| 白朗县| 元朗区| 太原市| 民权县| 蓬溪县| 若羌县| 嘉荫县| 天台县| 张北县| 湘潭县| 孝昌县| 永德县| 叙永县| 霞浦县| 海晏县| 岳西县| 西贡区| 六盘水市| 益阳市| 佛坪县| 隆昌县| 临泽县| 鄂托克旗|