如何使用 SWIG 绑定到 QT 应用程序,我们的情况和这个帖子的情况差不多,里面说:
- 我们有一个带有核心 Swig 绑定的大型 C++/Qt 应用程序。
- 我们想在 python 中创建新的 UI 工具,这些工具需要使用我们的一些 C++ 小部件。所以我们需要绑定我们的 C++ 小部件。由于我们的核心绑定是用 Swig 编写的(我们对此很满意),我们需要使用相同的绑定工具绑定我们的小部件以实现兼容性。
似乎他们已经成功地在 SWIG 中创建了 Qt 的绑定,但是使用 swig 包装 QT 似乎并不容易,因为带有宏 Q_OBJECT 的 QT 应用程序将在预编译时生成 moc 文件,并在编译时使用这些文件。我试过这个:
>> swig -c++ -python application.i
application.h:46: Error: Syntax error in input(3)
Run Code Online (Sandbox Code Playgroud)
它总是给出关于指示 Q_OBJECT 的第 46 行的错误。
我还发现here和here说不可能使用swig来包装QT,我对此感到很困惑,如果不可行,有人可以对此有所了解,或者如果可以,请举一个关于使用SWIG wrap QT的简单示例. 提前致谢。
更新源文件:application.h
#ifndef APPLICATION_H_
#define APPLICATION_H_
#include <QApplication>
class frameApplication : public QApplication
{
Q_OBJECT
public:
frameApplication (){}; …Run Code Online (Sandbox Code Playgroud)