Source code for fancywidgets.pyQtBased.CircleWidget
from PyQt4 import QtGui,QtCore
[docs]class CircleWidget(QtGui.QWidget):
'''a simple circle - useful as indicator'''
def __init__(self, parent=None,
circle_size=6,
pen_size=2,
circle_color=QtCore.Qt.red,
pen_color=QtCore.Qt.darkRed,
antialiased=True):
super(CircleWidget, self).__init__(parent)
self.circle_size = circle_size
self.pen_size = pen_size
self.circle_color = circle_color
self.pen_color = pen_color
self.antialiased = antialiased
self.setBackgroundRole(QtGui.QPalette.Base)
self.setFixedSize(QtCore.QSize(self.circle_size+self.pen_size,
self.circle_size+self.pen_size))
[docs] def paintEvent(self, event):
painter = QtGui.QPainter(self)
painter.setRenderHint(QtGui.QPainter.Antialiasing, self.antialiased)
painter.translate(self.width() / 2, self.height() / 2)
painter.setBrush(self.circle_color)
painter.setPen(QtGui.QPen(self.pen_color
, self.pen_size) )
painter.drawEllipse(QtCore.QRect(-self.circle_size / 2,
-self.circle_size / 2,
self.circle_size,
self.circle_size))
if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
w= CircleWidget()
w.setWindowTitle(w.__class__.__name__)
w.show()
app.exec_()