溫馨提示×

溫馨提示×

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

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

使用python怎么編寫一個無邊框的進(jìn)度條功能

發(fā)布時間:2020-12-30 13:52:54 來源:億速云 閱讀:169 作者:Leah 欄目:開發(fā)技術(shù)

這篇文章將為大家詳細(xì)講解有關(guān)使用python怎么編寫一個無邊框的進(jìn)度條功能,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

實現(xiàn)說明

1.進(jìn)度條的部分用到了tkinter中的畫布組件
2.圖片無邊框顯示用到了PYQT5中的QMainWindow, QApplication
(由于水平有限,只好用兩個不同的庫來實現(xiàn))

源代碼

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('私人醫(yī)生 copyright@2020 1.2.1')

  # 設(shè)置無邊框窗口樣式
  self.setWindowFlags(Qt.FramelessWindowHint)

  #子窗口,窗口無按鈕 ,但有標(biāo)題,可注釋掉觀察效果
  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()
 
#更新進(jìn)度條函數(shù)
def change_schedule(now_schedule,all_schedule):
 canvas.coords(fill_rec, (5, 5, 6 + (now_schedule/all_schedule)*100, 25))
 root.update()
 #進(jìn)度顯示
 x.set(str(round(now_schedule/all_schedule*100,2)) + '%')
 if round(now_schedule/all_schedule*100,2) == 100.00:
  x.set("完成")

#創(chuàng)建畫布
root = Tk()

#畫布位置控制,前兩個參數(shù)為寬度和高度,后兩個參數(shù)為xy坐標(biāo)
root.geometry("480x30+720+830")
#創(chuàng)建畫布
frame = Frame(root).grid(row = 0,column = 0)
#使用時將框架根據(jù)情況選擇新的位置
canvas = Canvas(frame,bg = "white")
canvas.grid(row = 0,column = 0)
x = StringVar()
#隱藏標(biāo)題欄
root.overrideredirect(True)
#將邊框像素設(shè)置為0,即取消邊框
canvas.configure(highlightthickness=0)
#進(jìn)度條以及完成程度
#設(shè)置矩形,無填充即為邊框
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()

關(guān)于使用python怎么編寫一個無邊框的進(jìn)度條功能就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI