Я ищу способ регистрации нестатических методов моего класса 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}
};
Задача ещё не решена.
Других решений пока нет …