Зарегистрируйте нестатический метод с помощью 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}
};