Skip to content

Commit 16babbb

Browse files
authored
Merge pull request #2141 from pavlin-policar/pythagoras-border-scale-invariant
[ENH] Pythagorean tree: Make border scale invariant
2 parents b7088d0 + 3124238 commit 16babbb

File tree

1 file changed

+11
-10
lines changed

1 file changed

+11
-10
lines changed

Orange/widgets/visualize/pythagorastreeviewer.py

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@
1818
from collections import namedtuple, defaultdict, deque
1919
from math import pi, sqrt, cos, sin, degrees
2020

21+
from AnyQt.QtCore import Qt, QPointF, QTimer, QRectF, QSizeF
22+
from AnyQt.QtGui import QColor, QBrush, QPen
2123
from AnyQt.QtWidgets import (
2224
QSizePolicy, QGraphicsItem, QGraphicsRectItem, QGraphicsWidget, QStyle
2325
)
24-
from AnyQt.QtGui import QColor, QBrush, QPen
25-
from AnyQt.QtCore import Qt, QPointF, QTimer, QRectF, QSizeF
2626

2727
from Orange.widgets.visualize.utils.tree.treeadapter import TreeAdapter
2828

@@ -245,9 +245,7 @@ def clear_tree(self):
245245

246246
def _calculate_tree(self, tree_adapter, weight_adjustment):
247247
"""Actually calculate the tree squares"""
248-
tree_builder = PythagorasTree(
249-
weight_adjustment=weight_adjustment
250-
)
248+
tree_builder = PythagorasTree(weight_adjustment=weight_adjustment)
251249
return tree_builder.pythagoras_tree(
252250
tree_adapter, tree_adapter.root, Square(Point(0, 0), 200, -pi / 2)
253251
)
@@ -367,8 +365,6 @@ class SquareGraphicsItem(QGraphicsRectItem):
367365
The tree node the square represents.
368366
brush : QColor, optional
369367
The brush to be used as the backgound brush.
370-
pen : QPen, optional
371-
The pen to be used for the border.
372368
373369
"""
374370

@@ -386,7 +382,11 @@ def __init__(self, tree_node, parent=None, **kwargs):
386382
self.setRotation(degrees(angle))
387383

388384
self.setBrush(kwargs.get('brush', QColor('#297A1F')))
389-
self.setPen(kwargs.get('pen', QPen(QColor('#000'))))
385+
# The border should be invariant to scaling
386+
pen = QPen(QColor(Qt.black))
387+
pen.setWidthF(0.75)
388+
pen.setCosmetic(True)
389+
self.setPen(pen)
390390

391391
self.setAcceptHoverEvents(True)
392392
self.setZValue(kwargs.get('zvalue', 0))
@@ -544,10 +544,11 @@ def paint(self, painter, option, widget=None):
544544
super().paint(painter, option, widget)
545545
painter.save()
546546
pen = QPen(QColor(Qt.black))
547-
pen.setWidth(4)
547+
pen.setWidthF(2)
548+
pen.setCosmetic(True)
548549
pen.setJoinStyle(Qt.MiterJoin)
549550
painter.setPen(pen)
550-
painter.drawRect(rect.adjusted(2, 2, -2, -2))
551+
painter.drawRect(rect)
551552
painter.restore()
552553
else:
553554
super().paint(painter, option, widget)

0 commit comments

Comments
 (0)