Updated the PySide test related to Python model returning data to C++.
This commit is contained in:
parent
22b7485419
commit
ce42ea6eeb
3 changed files with 29 additions and 13 deletions
|
|
@ -12,12 +12,15 @@ class MyObject(QObject):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
class ListModelKeepsReference(QAbstractListModel):
|
class ListModelKeepsReference(QAbstractListModel):
|
||||||
|
def __init__(self, parent=None):
|
||||||
|
QAbstractListModel.__init__(self, parent)
|
||||||
|
self.obj = MyObject()
|
||||||
|
self.obj.setObjectName(object_name)
|
||||||
|
|
||||||
def rowCount(self, parent=QModelIndex()):
|
def rowCount(self, parent=QModelIndex()):
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
def data(self, index, role):
|
def data(self, index, role):
|
||||||
self.obj = MyObject()
|
|
||||||
self.obj.setObjectName(object_name)
|
|
||||||
return self.obj
|
return self.obj
|
||||||
|
|
||||||
class ListModelDoesntKeepsReference(QAbstractListModel):
|
class ListModelDoesntKeepsReference(QAbstractListModel):
|
||||||
|
|
@ -29,8 +32,25 @@ class ListModelDoesntKeepsReference(QAbstractListModel):
|
||||||
obj.setObjectName(object_name)
|
obj.setObjectName(object_name)
|
||||||
return obj
|
return obj
|
||||||
|
|
||||||
|
class ListModelThatReturnsString(QAbstractListModel):
|
||||||
|
def rowCount(self, parent=QModelIndex()):
|
||||||
|
return 1
|
||||||
|
|
||||||
|
def data(self, index, role):
|
||||||
|
self.obj = 'string'
|
||||||
|
return self.obj
|
||||||
|
#return 'string'
|
||||||
|
|
||||||
|
|
||||||
class ModelViewTest(unittest.TestCase):
|
class ModelViewTest(unittest.TestCase):
|
||||||
|
|
||||||
|
def testListModelDoesntKeepsReference(self):
|
||||||
|
model = ListModelDoesntKeepsReference()
|
||||||
|
view = TestView(model)
|
||||||
|
obj = view.getData()
|
||||||
|
self.assertEqual(type(obj), QObject)
|
||||||
|
self.assertEqual(obj.objectName(), object_name)
|
||||||
|
|
||||||
def testListModelKeepsReference(self):
|
def testListModelKeepsReference(self):
|
||||||
model = ListModelKeepsReference()
|
model = ListModelKeepsReference()
|
||||||
view = TestView(model)
|
view = TestView(model)
|
||||||
|
|
@ -38,13 +58,12 @@ class ModelViewTest(unittest.TestCase):
|
||||||
self.assertEqual(type(obj), MyObject)
|
self.assertEqual(type(obj), MyObject)
|
||||||
self.assertEqual(obj.objectName(), object_name)
|
self.assertEqual(obj.objectName(), object_name)
|
||||||
|
|
||||||
def testListModelDoesntKeepsReference(self):
|
def testListModelThatReturnsString(self):
|
||||||
model = ListModelDoesntKeepsReference()
|
model = ListModelThatReturnsString()
|
||||||
view = TestView(model)
|
view = TestView(model)
|
||||||
obj = view.getData()
|
obj = view.getData()
|
||||||
self.assertEqual(type(obj), MyObject)
|
self.assertEqual(type(obj), unicode)
|
||||||
self.assertEqual(obj.objectName(), object_name)
|
self.assertEqual(obj, 'string')
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
|
|
||||||
|
|
@ -2,14 +2,11 @@
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
QObject*
|
QVariant
|
||||||
TestView::getData()
|
TestView::getData()
|
||||||
{
|
{
|
||||||
QModelIndex index;
|
QModelIndex index;
|
||||||
QVariant data = m_model->data(index);
|
QVariant data = m_model->data(index);
|
||||||
QObject* obj = 0;
|
return data;
|
||||||
if (data.canConvert<QObject*>())
|
|
||||||
obj = data.value<QObject*>();
|
|
||||||
return obj;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ class PYSIDE_API TestView : public QObject
|
||||||
public:
|
public:
|
||||||
TestView(QAbstractListModel* model, QObject* parent = 0) : QObject(parent), m_model(model) {}
|
TestView(QAbstractListModel* model, QObject* parent = 0) : QObject(parent), m_model(model) {}
|
||||||
QAbstractListModel* model() { return m_model; }
|
QAbstractListModel* model() { return m_model; }
|
||||||
QObject* getData();
|
QVariant getData();
|
||||||
private:
|
private:
|
||||||
QAbstractListModel* m_model;
|
QAbstractListModel* m_model;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue