PyQt5具有大量的部件。然而,并没有什么工具包能够满足开发者在开发应用程序时的所有需求。工具包一般只提供会常用到的组件,比如按钮、文本部件或是滑块。如果需要更专业的小部件,我们必须自己来创建。
自定义部件由工具包提供的绘画工具来创建。它有两种可能:开发人员可以修改或增强现有小部件,也可以从头开始创建自定义的小部件。
Burning widget
以下示例为我们可以在Nero、K3B或其他CD、DVD刻录软件中看到的小部件。
import sys
from PyQt5.QtWidgets import QWidget, QSlider, QApplication, QHBoxLayout, QVBoxLayout
from PyQt5.QtCore import QObject, Qt, pyqtSignal
from PyQt5.QtGui import QPainter, QFont, QColor, QPen
class Communicate(QObject):
updateBW = pyqtSignal(int)
class BurningWidget(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setMinimumSize(1, 30)
self.value = 75
self.num = [75, 150, 225, 300, 375, 450, 525, 600, 675]
def setValue(self, value):
self.value = value
def paintEvent(self, e):
qp = QPainter()