fun with qpainterpath
authorBarış Metin <Talip-Baris.Metin@sophia.inria.fr>
Fri, 10 Sep 2010 21:12:02 +0000 (23:12 +0200)
committerBarış Metin <Talip-Baris.Metin@sophia.inria.fr>
Fri, 10 Sep 2010 21:12:02 +0000 (23:12 +0200)
sface/screens/mainscreen.py

index 00710a3..e8e2763 100644 (file)
@@ -29,13 +29,20 @@ class ItemDelegate(QStyledItemDelegate):
         if data.startswith("*"): # already in the sliver
             data = " %s " % data[1:]
 
         if data.startswith("*"): # already in the sliver
             data = " %s " % data[1:]
 
-            rect = option.rect
             fm = QFontMetrics(option.font)
             fm = QFontMetrics(option.font)
-            w = fm.width(QString(data))
-            rect.setWidth(w)
+            rect = option.rect
+            rect.setWidth(fm.width(QString(data)))
+            rect.setHeight(rect.height() - 2)
+            rect.setX(rect.x() + 1)
+            x, y, h, w = rect.x(), rect.y(), rect.height(), rect.width()
+
+            path = QPainterPath()
+            path.addRoundedRect(x, y, w, h, 4, 4)
 
             painter.save()
 
             painter.save()
-            painter.fillRect(rect, QColor.fromRgb(0, 250, 0))
+            painter.setRenderHint(QPainter.Antialiasing)
+            painter.drawRoundedRect(rect, 4, 4)
+            painter.fillPath(path, QColor.fromRgb(0, 250, 0))
             painter.setPen(QColor.fromRgb(0, 0, 0))
             painter.drawText(option.rect, 0, QString(data))
             painter.restore()
             painter.setPen(QColor.fromRgb(0, 0, 0))
             painter.drawText(option.rect, 0, QString(data))
             painter.restore()