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

溫馨提示×

溫馨提示×

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

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

python如何實現屏保程序

發布時間:2021-04-06 11:18:16 來源:億速云 閱讀:715 作者:小新 欄目:開發技術

這篇文章給大家分享的是有關python如何實現屏保程序的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

開始

首先:我們使用的是python自帶的GUI模塊,大部分操作網上都可以查到,對于寫一些小的交互程序是完全夠了。首先我們來定義一個類,這個類可以實列出一個屏幕顯示對象,我把它稱為Screensaver()。

from tkinter import *
import tkinter.font as tkFont # 導入了一個字體

class Screensaver():
 txt_1 = [] # 用來儲存實例對象
 i = 1 # 用于后期判斷是否更新單詞表
 def __init__(self):
 self.win = Tk() # 基于tkiner中的Tk()方法實例個對象
 self.ft = tkFont.Font(family='Fixdsys', size=30, weight=tkFont.BOLD) # 修改字體的方法
 self.width = self.win.winfo_screenwidth() # 獲取屏幕大小
 self.height= self.win.winfo_screenheight()
 
 self.win.overrideredirect(1) # 全屏設置
 self.win.attributes('-alpha',0.3) # 以參數alpha的方式設置透明度


 # 綁定事件
 self.win.bind('<Any-Button>',self.exit_screensaver) # 單擊鼠標即彈出
 self.canvas=Canvas(self.win,width=self.width,height=self.height,bg='#00FFFF')
 self.canvas.pack()

 self.win.mainloop()

 def exit_screensaver(self,event): # 這里必須要個參數event
 self.win.destroy()

Screensaver() # 實例化

運行結果:

python如何實現屏保程序

可以看到,屏幕有透明的一層,這就是我們實例化的對象,它以cavans(畫布的形式),類似于photoshop里面的畫層一樣,可以在上面不斷疊加畫層。

接下來,我們要創建文字類:Text_screen(),用它來創建文字,并使其能移動文字和創建文字。

class Text_screen():
 list_box = [i for i in range(20,1080,50)] # 22 個個數,分別代表屏幕的高度位置
 i = 0 # 用來在高度上取值
 def __init__(self,canvas,ft,width,height,text_1):
 self.canvas = canvas
 self.ft = ft
 self.text_1 = text_1
 self.x_pos = width
 self.x_move = -1
 self.create_text()

 def create_text(self): # 創建方法
 self.x1 = self.x_pos-100
 self.item = self.canvas.create_text(self.x1,self.list_box[Text_screen.i],text=self.text_1,font=self.ft,fill='red',anchor=NW)
 if Text_screen.i == len(Text_screen.list_box)-1:
  Text_screen.i = 0
 else: Text_screen.i += 1

 def move_text(self): # 移動文字
 self.canvas.move(self.item, self.x_move,0)
 self.x1 += self.x_move

最后

我們來整合著兩個類:
在Screensaver()類中添加三個函數:

 def birth_list(self): #生成文字,
 i = randint(0,2064)
 self.str_text = linecache.getlines('six.txt')[i:i+21] # 這里需要導入模塊:linecache,并且這里的文件是單詞文本,要注意它的編碼格式。
 if self.i == 1:
  for my_text in self.str_text:
  txt = Text_screen(self.canvas,self.ft,self.width,self.height,my_text)
  self.list_.append(txt)
 else: pass
 def exit_screensaver(self,event): # 這里必須要個參數event
 self.win.destroy()

 def run_screensaver(self): # 循環體 ,不斷更新屏幕內容
 if self.i == 1:
  for emumt in self.list_:
  emumt.move_text()
  if emumt.x1<= -30:
   emumt
   self.i = -1
   self.delect()
   self.list_ =[]
   self.birth_list()
   for my_text in self.str_text:
   txt = Text_screen(self.canvas,self.ft,self.width,self.height,my_text)
   self.list_.append(txt)
   break
 else:
  self.i *= -1
 self.canvas.after(1,self.run_screensaver) # 第一個參數是間隔事件吧?第二個是調用函數

 def delect(self):# 不斷的刪除屏幕對象
 for em in self.list_:
  self.canvas.delete(em.item)

這里我們就講完所有的步驟了,大致的運行結果如圖:

python如何實現屏保程序

需要注意的是:這里的單詞是我在網上下的,如果下載好的六級單詞,不是utf格式的需要使用記事本 -> 另存為 -> 選擇格式。

總結

缺點:

1、這里面的代碼可以簡練很多的,最近沒時間去看,只是粗略的完成了效果,希望大家多多指教。
2、可能對于cpu的消耗有點大,正如上所說,完全可以簡化代碼。
3、請大家多多指點。

感謝各位的閱讀!關于“python如何實現屏保程序”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

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

AI

正宁县| 射洪县| 普安县| 自治县| 宾川县| 琼结县| 敖汉旗| 新化县| 社旗县| 甘孜县| 泾阳县| 武强县| 景泰县| 周至县| 田阳县| 兴海县| 洛川县| 三门县| 鹤峰县| 隆昌县| 榆林市| 浑源县| 汾西县| 东乌珠穆沁旗| 新龙县| 三原县| 泸溪县| 昭觉县| 拉孜县| 自贡市| 汨罗市| 桦甸市| 龙游县| 同德县| 凤阳县| 宝鸡市| 玉环县| 渝中区| 高雄市| 加查县| 海宁市|