2011-08-30 70 views
1

我目前正在开发一个使用Qt C++的项目,并且使用SIP将API暴露给Python。为了让这个程序在Windows环境下更具吸引力,我想将API公开给.NET。为.NET生成Qt绑定

我发现qt4dotnet虽然只是Qt绑定,我需要一些东西来生成我的API的绑定。我听说SWIG“可能”能够为Qt应用程序生成绑定,尽管我似乎无法在此找到任何帮助。

任何人都知道的东西可以帮助吗?

回答

0

这可能是值得调查ActiveQt,并阅读诺基亚this文件详细集成ActiveQt与.NET框架。

还有一个StackOverflow post,它讨论了使用微软的C++/CLI扩展包装Qt信号和插槽(或通用方法)。

虽然我不是.NET开发者,所以我可能无法提供任何帮助。

0

在kdebindings模块中,根据我们的SMOKE库(我们所有绑定共享的库,用于调用C++ API,仅依赖于STL),我们有称为Qyoto的合适的Qt bindings

不幸的是,由于缺乏来自* nix用户的兴趣,该项目至今仍未得到维护。

但是,扩展基于SMOKE的绑定非常容易。你只需要从你自己的头文件中生成一个新的SMOKE库,一个匹配的.NET程序集并且写一个Qyoto插件。 生成SMOKE库是用smokegen完成的,我写了一个tool,它可以从SMOKE库生成.NET程序集(但它尚未合并)。我想这将需要一些努力,使绑定更新,并实际上使他们在Windows上工作,但我认为这是你有最好的选择(如果你不想手工工艺绑定)。我们已经支持所有QMetaObject的东西(包括自定义Signals,Slots,Q_PROPERTIES,Q_CLASSINFO等等),并且扩展绑定非常简单。

关于Windows,我曾经有过一个Hello World的工作,但似乎它不再工作。

如果您想参与进来,可以通过[email protected]或Freenode的#kde-bindings与我们联系。

P.S .:我会发布更多的链接,但垃圾邮件保护不会让我。您可以在projects.kde.org/smokeqt,projects.kde.org/smokegen和techbase.kde.org上找到关于SMOKE的更多信息。

+0

谢谢。我会在未来的某个时间看看。 –