Time for action – converting data between C++ and Python
Create a new class and call it QtPythonValue. Then, add the following code to it:
#include <Python.h>
class QtPythonValue {
public:
  QtPythonValue() { incRef(Py_None);}
  QtPythonValue(const QtPythonValue &other) { incRef(other.m_value); }
  QtPythonValue& operator=(const QtPythonValue &other) {
    if(m_value == other.m_value) return *this;
    decRef();
    incRef(other.m_value);
    return *this;
  }
  QtPythonValue(int val) {  m_value = PyLong_FromLong(val); }
  QtPythonValue(const QString &str) {
    m_value = PyUnicode_FromString(qPrintable(str));
  }
  ~QtPythonValue() { decRef(); }
  int toInt() const { return PyLong_Check(m_value) ? PyLong_AsLong(m_value) : 0; }
  QString toString() const {
    return PyUnicode_Check(m_value) ? QString::fromUtf8(PyUnicode_AsUTF8(m_value)) : QString(); 
  }
  bool isNone() const { return m_value == Py_None; }
private:
  QtPythonValue(PyObject *ptr) { m_value... 
                                             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
     
         
                 
                 
                