QT4 進度條

在本文中,我們將演示如何使用 progressbar 控制元件。進度條與其他控制元件的不同之處在於它及時更新。

QT4 Progressbar 示例

讓我們從程式碼開始:

#! /usr/bin/env python
# -*- coding: utf-8 -*-
#
import sys
from PyQt4.QtGui import *
from PyQt4.QtCore import *
from PyQt4.QtCore import pyqtSlot,SIGNAL,SLOT
 
class QProgBar(QProgressBar):
 
    value = 0
 
    @pyqtSlot()
    def increaseValue(progressBar):
        progressBar.setValue(progressBar.value)
        progressBar.value = progressBar.value+1
 
# Create an PyQT4 application object.
a = QApplication(sys.argv)       
 
# The QWidget widget is the base class of all user interface objects in PyQt4.
w = QWidget()
 
# Set window size. 
w.resize(320, 240)
 
# Set window title

w.setWindowTitle("PyQT4 Progressbar @ pythonspot.com ") 
 
# Create progressBar. 
bar = QProgBar(w)
bar.resize(320,50)    
bar.setValue(0)
bar.move(0,20)
 
# create timer for progressBar
timer = QTimer()
bar.connect(timer,SIGNAL("timeout()"),bar,SLOT("increaseValue()"))
timer.start(400) 
 
# Show window
w.show() 
 
sys.exit(a.exec_())

例項欄(QProgBar 類)用於儲存進度條的值。我們呼叫函式 setValue() 來更新它的值。給出引數 w 以將其附加到主視窗。然後我們將它移動到螢幕上的位置 (0,20) 並給它一個寬度和高度。

要及時更新進度條,我們需要一個 QTimer()。我們將控制元件與計時器連線,計時器呼叫函式 increaseValue()。我們設定定時器每 400 毫秒重複一次函式呼叫。你還看到單詞 SLOTSIGNAL。如果使用者執行諸如單擊按鈕,在框中鍵入文字等操作,則視窗控制元件會發出 SIGNAL。此訊號不執行任何操作,但可用於連線 SLOT,該插槽充當接收器並對其起作用。

結果:

PyQT Progressbar