PythonQt Code
Dynamic Python binding for Qt Applications
Brought to you by:
florianlink,
marcusbarann
a/src/PythonQtConversion.cpp | b/src/PythonQtConversion.cpp | ||
---|---|---|---|
... |
... |
||
118 | case QMetaType::ULongLong: |
118 | case QMetaType::ULongLong: |
119 | return PyLong_FromUnsignedLongLong(*((quint64*)data)); |
119 | return PyLong_FromUnsignedLongLong(*((quint64*)data)); |
120 | case QMetaType::QByteArray: { |
120 | case QMetaType::QByteArray: { |
121 | QByteArray* v = (QByteArray*) data; |
121 | QByteArray* v = (QByteArray*) data; |
122 | return PyString_FromStringAndSize(*v, v->size()); |
122 | return PyString_FromStringAndSize(*v, v->size()); |
123 | } |
123 | } |
124 | case QMetaType::QVariantMap: |
124 | case QMetaType::QVariantMap: |
125 | return PythonQtConv::QVariantMapToPyObject(*((QVariantMap*)data)); |
125 | return PythonQtConv::QVariantMapToPyObject(*((QVariantMap*)data)); |
126 | case QMetaType::QVariantList: |
126 | case QMetaType::QVariantList: |
127 | return PythonQtConv::QVariantListToPyObject(*((QVariantList*)data)); |
127 | return PythonQtConv::QVariantListToPyObject(*((QVariantList*)data)); |
128 | case QMetaType::QString: |
128 | case QMetaType::QString: |
... |
... |
||
206 | if (PythonQt::priv()->isPythonQtObjectPtrMetaId(type)) { |
206 | if (PythonQt::priv()->isPythonQtObjectPtrMetaId(type)) { |
207 | PyObject* o = ((PythonQtObjectPtr*)data)->object(); |
207 | PyObject* o = ((PythonQtObjectPtr*)data)->object(); |
208 | Py_INCREF(o); |
208 | Py_INCREF(o); |
209 | return o; |
209 | return o; |
210 | } else { |
210 | } else { |
211 | QVariant v(type, data); |
211 | if (type != PythonQtMethodInfo::Unknown) { |
212 | QVariant v(type, data); |
||
212 | if (v.isValid()) { |
213 | if (v.isValid()) { |
213 | return (PyObject*)PythonQt::priv()->createNewPythonQtVariantWrapper(v); |
214 | return (PyObject*)PythonQt::priv()->createNewPythonQtVariantWrapper(v); |
214 | } else { |
215 | } |
215 | std::cerr << "Unknown type that can not be converted to Python: " << type << ", in " << __FILE__ << ":" << __LINE__ << std::endl; |
216 | } |
217 | std::cerr << "Unknown type that can not be converted to Python: " << type << ", in " << __FILE__ << ":" << __LINE__ << std::endl; |
||
216 | } |
||
217 | } |
218 | } |
218 | } |
219 | } |
219 | Py_INCREF(Py_None); |
220 | Py_INCREF(Py_None); |
220 | return Py_None; |
221 | return Py_None; |
221 | } |
222 | } |