python實現無邊框進度條的實例代碼
上python課程時需要設計一個系統,想著為系統加一個啟動動畫,所以做成瞭圖片加進度條的形式。
本文旨在用python實現無邊框的進度條,並在其基礎上加瞭圖片,體現瞭某程序加載動畫的效果
實現說明
1.進度條的部分用到瞭tkinter中的畫佈組件
2.圖片無邊框顯示用到瞭PYQT5中的QMainWindow, QApplication
(由於水平有限,隻好用兩個不同的庫來實現)
源代碼
import sys from PyQt5.QtCore import Qt from PyQt5.QtWidgets import QMainWindow, QApplication import time from tkinter import * class MainWIndow(QMainWindow): def __init__(self, parent=None): super(MainWIndow, self).__init__(parent) self.resize(500, 667) self.setWindowTitle('私人醫生 copyright@2020 1.2.1') # 設置無邊框窗口樣式 self.setWindowFlags(Qt.FramelessWindowHint) #子窗口,窗口無按鈕 ,但有標題,可註釋掉觀察效果 self.setWindowFlags(Qt.SubWindow) self.setObjectName("MainWindow") self.setStyleSheet("#MainWindow{border-image:url(images/python.jpg);}") if __name__ == '__main__': app = QApplication(sys.argv) win = MainWIndow() win.show() #更新進度條函數 def change_schedule(now_schedule,all_schedule): canvas.coords(fill_rec, (5, 5, 6 + (now_schedule/all_schedule)*100, 25)) root.update() #進度顯示 x.set(str(round(now_schedule/all_schedule*100,2)) + '%') if round(now_schedule/all_schedule*100,2) == 100.00: x.set("完成") #創建畫佈 root = Tk() #畫佈位置控制,前兩個參數為寬度和高度,後兩個參數為xy坐標 root.geometry("480x30+720+830") #創建畫佈 frame = Frame(root).grid(row = 0,column = 0) #使用時將框架根據情況選擇新的位置 canvas = Canvas(frame,bg = "white") canvas.grid(row = 0,column = 0) x = StringVar() #隱藏標題欄 root.overrideredirect(True) #將邊框像素設置為0,即取消邊框 canvas.configure(highlightthickness=0) #進度條以及完成程度 #設置矩形,無填充即為邊框 out_rec = canvas.create_rectangle(5,5,480,25,outline = "red",width = 1) fill_rec = canvas.create_rectangle(5,5,5,25,outline = "",width = 0,fill = "blue") Label(frame,textvariable = x).grid(row = 0,column = 1) for i in range(480): time.sleep(0.01) change_schedule(i,99) #root.mainloop()
運行截圖
到此這篇關於python實現無邊框進度條的實例代碼的文章就介紹到這瞭,更多相關python無邊框進度條內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- python光學仿真PyQt5基礎框架教程
- python使用tkinter實現透明窗體
- Python Tkinter Canvas畫佈控件詳解
- python tkinter Entry控件的焦點移動操作
- tkinter使用js的canvas實現漸變色