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 | } |