##// END OF EJS Templates
Several additions for Catalogue GUI...
Several additions for Catalogue GUI Signed-off-by: Alexis Jeandet <alexis.jeandet@member.fsf.org>

File last commit:

r40:70eb884a0ee3
r55:6b6bb3a15bf8
Show More
QtWrappers.cpp
44 lines | 1.3 KiB | text/x-c | CppLexer
#include <QString>
#include <QUuid>
#include <QDate>
#include <QTime>
#include <QVector>
#include <string>
#include <sstream>
#include "pywrappers_common.h"
#include <pybind11/pybind11.h>
#include "QtWrappers.h"
namespace py = pybind11;
PYBIND11_MODULE(sciqlopqt,m){
py::class_<QString>(m, "QString")
.def(py::init([](const std::string& value){return QString::fromStdString(value);}))
.def("__repr__", __repr__<QString>);
py::class_<QUuid>(m,"QUuid")
.def(py::init([](){return QUuid::createUuid();}))
.def("__repr__",__repr__<QUuid>);
py::class_<QDate>(m,"QDate")
.def(py::init<int,int,int>());
py::class_<QTime>(m,"QTime")
.def(py::init<int,int,int>());
py::class_<QVector<double>>(m, "DoubleQVector")
.def(py::init<>())
.def("clear", &QVector<double>::clear)
.def("pop_back", &QVector<double>::pop_back)
.def("__len__", [](const QVector<double> &v) { return v.size(); })
.def("__iter__", [](QVector<double> &v) {
return py::make_iterator(v.begin(), v.end());
}, py::keep_alive<0, 1>())
.def("__getitem__", [](const QVector<double> &s, size_t i) {
if (i >= s.size()) throw py::index_error();
return s[i];});
py::implicitly_convertible<std::string, QString>();
}