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