1. 程式人生 > 程式設計 >python實現無邊框進度條的例項程式碼

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,480,25,outline = "red",width = 1)
fill_rec = canvas.create_rectangle(5,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無邊框進度條內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!