Зарегистрируйте нестатический метод с помощью PyMethodDef

Я ищу способ регистрации нестатических методов моего класса MyWidget в качестве методов Python.

Класс MyWidget является классом QWidget и находится в главном окне. Поэтому я хочу инициализировать
Python, когда приложение запускается, то я хочу получить информацию из MyTableWidget (QTableWidget)
в классе MyWidget. Мне нравится регистрировать нестатический метод itemCount как метод python. Я не мог этого сделать
так как регистрация нестатического объекта выдает ошибку в myPythonCommands ниже.

Я проверил boost :: python, но не смог найти способ сделать это. Это обложка документа, чтобы создать классы Python внутри
C ++, но не его, насколько я знаю.

Мне было интересно, если кто-нибудь из вас знает способ и указать мне правильное направление?

class MyTableWidget
{

};

class MyWidget
{

MyWidget()
{
Py_Initialize();
Py_InitModule("myApp", myPythonCommands);
}
~MyWidget()
{
Py_Finalize();
}

int itemCount()
{
return table.itemCount(); //return item count (in table) to python
}

MyTableWidget table;
};
static PyMethodDef myPythonCommands[] = {
{"itemCount",  itemCount, METH_NOARGS, ""}, // here is the register part
{NULL, NULL, 0, NULL}
};

3

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]