source: orange/Orange/OrangeCanvas/canvas/items/tests/test_annotationitem.py @ 11185:528087d3f1bb

Revision 11185:528087d3f1bb, 1.7 KB checked in by Ales Erjavec <ales.erjavec@…>, 17 months ago (diff)

Indicate annotation items's selection state.

Line 
1import math
2import time
3
4from PyQt4.QtGui import QColor
5from PyQt4.QtCore import Qt, QRectF, QLineF
6
7from ..annotationitem import TextAnnotation, ArrowAnnotation, ArrowItem
8
9from . import TestItems
10
11
12class TestAnnotationItem(TestItems):
13    def test_textannotation(self):
14        text = "Annotation"
15        annot = TextAnnotation()
16        annot.setPlainText(text)
17        self.assertEqual(annot.toPlainText(), text)
18
19        annot2 = TextAnnotation()
20        self.assertEqual(annot2.toPlainText(), "")
21
22        text = "This is an annotation"
23        annot2.setPlainText(text)
24        self.assertEqual(annot2.toPlainText(), text)
25
26        annot2.setDefaultTextColor(Qt.red)
27        control_rect = QRectF(0, 0, 100, 200)
28        annot2.setGeometry(control_rect)
29        self.assertEqual(annot2.geometry(), control_rect)
30
31        annot.setTextInteractionFlags(Qt.TextEditorInteraction)
32        annot.setPos(400, 100)
33        annot.adjustSize()
34        annot._TextAnnotation__textItem.setFocus()
35        self.scene.addItem(annot)
36        self.scene.addItem(annot2)
37
38        self.app.exec_()
39
40    def test_arrowannotation(self):
41        item = ArrowItem()
42        self.scene.addItem(item)
43        item.setLine(QLineF(100, 100, 100, 200))
44        item.setLineWidth(5)
45
46        item = ArrowAnnotation()
47        item.setPos(10, 10)
48        item.setLine(QLineF(10, 10, 200, 200))
49
50        self.scene.addItem(item)
51        item.setLineWidth(5)
52
53        def advance():
54            clock = time.clock() * 10
55            item.setLineWidth(5 + math.sin(clock) * 5)
56            item.setColor(QColor(Qt.red).lighter(100 + 30 * math.cos(clock)))
57            self.singleShot(0, advance)
58
59        advance()
60
61        self.app.exec_()
Note: See TracBrowser for help on using the repository browser.