кто-нибудь знает, существует ли метод для передачи объектов pyQt в код c ++?
Я объясню лучше;скажем, у меня есть этот код C ++
void QtGuiPDLVisitor::set_layout(QLayout* _layout){
layout = _layout;
}
, где QtGuiPDLVisitor - это класс c ++, экспортированный в python с использованием SWIG, поэтому в python я хочу сделать что-то подобное
layout = QtGui.QGridLayout()
visitor = QtGuiPDLVisitor()
visitor.set_layout(layout)
возможно ли это?Интерпретатор python говорит нет: (... есть ли обходной путь, например, способ передачи указателей или любой другой взлом?
EDIT:
Traceback (most recent call last):
File "/home/picci/workspace/gestface/pypelab/src/pypelab/ui/pipeworkarea.py", line 53, in create_new_computation
subWindowWidget.setComputation(idx.data())
File "/home/picci/workspace/gestface/pypelab/src/pypelab/ui/pypeWidgets.py", line 44, in setComputation
self.widBuilder.buildUi(self)
File "/home/picci/workspace/gestface/pypelab/src/pypelab/ui/pypeWidgets.py", line 63, in buildUi
pdlVisitor.set_layout(criteria_area_layout)
File "/home/picci/workspace/gestface/pipeit/wrap/python/dist/Debug/pipeit.py", line 736, in set_layout
def set_layout(self, *args) -> "void" : return _pipeit.QtGuiPDLVisitor_set_layout(self, *args)
TypeError: in method 'QtGuiPDLVisitor_set_layout', argument 2 of type 'QLayout *'
Это ошибка Python.Я уже знаю, что эта ошибка связана с тем, что Qt4 является оберткой в python, использующей SIP, в то время как я использую SWIG для переноса, но я думаю, что должен быть способ прямого доступа к указателю объекта Qlayout и передачиэто в C ++ код из Python.