为.NET生成Qt绑定

时间:2011-08-30 01:32:13

标签: .net qt binding swig

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

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

任何人都知道可以提供帮助的事情吗?

2 个答案:

答案 0 :(得分:0)

可能值得调查ActiveQt,并阅读诺基亚的this文档,详细说明将ActiveQt与.NET Framework集成。

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

我不是.NET开发人员,所以我可能无法提供更多帮助。

答案 1 :(得分:0)

在kdebindings模块中,我们有一个名为Qyoto的Qt bindings,基于我们的SMOKE库(我们所有绑定共享的库,用于调用C ++ API,仅取决于STL)。

不幸的是,由于* nix用户缺乏兴趣,该项目目前尚未维护。

但是,扩展基于SMOKE的绑定非常容易。您只需要从自己的头文件生成一个新的SMOKE库,一个匹配的.NET程序集并编写一个Qyoto插件。 生成SMOKE库是用smokegen完成的,我编写了一个tool,它从SMOKE库生成.NET程序集(但它还没有合并)。

我想这需要一些努力才能使绑定更新并实际使它们在Windows上运行,但我认为这是你拥有的最佳选择(如果你不想手工制作绑定)。我们已经支持所有QMetaObject的东西(包括自定义信号,插槽,Q_PROPERTIES,Q_CLASSINFO等),并且扩展绑定非常容易。

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

如果您想参与,可以通过kde-bindings@kde.org或Freenode上的#kde-bindings与我们联系。

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