Add tests for qmlregisterType function and qml list properties.
Reviewer: Marcelo Lira <marcelo.lira@openbossa.org>
Luciano Wolf <luciano.wolf@openbossa.org>
This commit is contained in:
parent
9b2bf0a267
commit
e62b0364f1
3 changed files with 122 additions and 0 deletions
92
tests/QtDeclarative/registertype.py
Normal file
92
tests/QtDeclarative/registertype.py
Normal file
|
|
@ -0,0 +1,92 @@
|
|||
|
||||
import sys
|
||||
import unittest
|
||||
import helper
|
||||
from PySide.QtCore import *
|
||||
from PySide.QtGui import *
|
||||
from PySide.QtDeclarative import *
|
||||
|
||||
class PieSlice (QDeclarativeItem):
|
||||
|
||||
def __init__(self, parent = None):
|
||||
QDeclarativeItem.__init__(self, parent)
|
||||
# need to disable this flag to draw inside a QDeclarativeItem
|
||||
self.setFlag(QGraphicsItem.ItemHasNoContents, False)
|
||||
self._color = QColor()
|
||||
self._fromAngle = 0
|
||||
self._angleSpan = 0
|
||||
|
||||
def getColor(self):
|
||||
return self._color
|
||||
|
||||
def setColor(self, value):
|
||||
self._color = value
|
||||
|
||||
def getFromAngle(self):
|
||||
return self._angle
|
||||
|
||||
def setFromAngle(self, value):
|
||||
self._fromAngle = value
|
||||
|
||||
def getAngleSpan(self):
|
||||
return self._angleSpan
|
||||
|
||||
def setAngleSpan(self, value):
|
||||
self._angleSpan = value
|
||||
|
||||
color = Property(QColor, getColor, setColor)
|
||||
fromAngle = Property(int, getFromAngle, setFromAngle)
|
||||
angleSpan = Property(int, getAngleSpan, setAngleSpan)
|
||||
|
||||
def paint(self, painter, options, widget):
|
||||
global paintCalled
|
||||
pen = QPen(self._color, 2)
|
||||
painter.setPen(pen);
|
||||
painter.setRenderHints(QPainter.Antialiasing, True);
|
||||
painter.drawPie(self.boundingRect(), self._fromAngle * 16, self._angleSpan * 16);
|
||||
paintCalled = True
|
||||
|
||||
class PieChart (QDeclarativeItem):
|
||||
|
||||
def __init__(self, parent = None):
|
||||
QDeclarativeItem.__init__(self, parent)
|
||||
self._name = u''
|
||||
self._slices = []
|
||||
|
||||
def getName(self):
|
||||
return self._name
|
||||
|
||||
def setName(self, value):
|
||||
self._name = value
|
||||
|
||||
name = Property(unicode, getName, setName)
|
||||
|
||||
def appendSlice(self, _slice):
|
||||
global appendCalled
|
||||
_slice.setParentItem(self)
|
||||
self._slices.append(_slice)
|
||||
appendCalled = True
|
||||
|
||||
slices = ListProperty(PieSlice, append=appendSlice)
|
||||
|
||||
appendCalled = False
|
||||
paintCalled = False
|
||||
|
||||
class TestQmlSupport(unittest.TestCase):
|
||||
|
||||
def testIt(self):
|
||||
app = QApplication([])
|
||||
|
||||
qmlRegisterType(PieChart, 'Charts', 1, 0, 'PieChart');
|
||||
qmlRegisterType(PieSlice, "Charts", 1, 0, "PieSlice");
|
||||
|
||||
view = QDeclarativeView()
|
||||
view.setSource(QUrl.fromLocalFile(helper.adjust_filename('registertype.qml', __file__)))
|
||||
view.show()
|
||||
QTimer.singleShot(250, view.close)
|
||||
app.exec_()
|
||||
self.assertTrue(appendCalled)
|
||||
self.assertTrue(paintCalled)
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
Loading…
Add table
Add a link
Reference in a new issue