我目前正在開發一個使用Qt C++的項目,並且使用SIP將API暴露給Python。爲了讓這個程序在Windows環境下更具吸引力,我想將API公開給.NET。爲.NET生成Qt綁定
我發現qt4dotnet雖然只是Qt綁定,我需要一些東西來生成我的API的綁定。我聽說SWIG「可能」能夠爲Qt應用程序生成綁定,儘管我似乎無法在此找到任何幫助。
任何人都知道的東西可以幫助嗎?
我目前正在開發一個使用Qt C++的項目,並且使用SIP將API暴露給Python。爲了讓這個程序在Windows環境下更具吸引力,我想將API公開給.NET。爲.NET生成Qt綁定
我發現qt4dotnet雖然只是Qt綁定,我需要一些東西來生成我的API的綁定。我聽說SWIG「可能」能夠爲Qt應用程序生成綁定,儘管我似乎無法在此找到任何幫助。
任何人都知道的東西可以幫助嗎?
這可能是值得調查ActiveQt,並閱讀諾基亞this文件詳細集成ActiveQt與.NET框架。
還有一個StackOverflow post,它討論了使用微軟的C++/CLI擴展包裝Qt信號和插槽(或通用方法)。
雖然我不是.NET開發者,所以我可能無法提供任何幫助。
在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的更多信息。
謝謝。我會在未來的某個時間看看。 –