2016-03-08 30 views
1

我知道在PythonQt我可以在Python代碼中訪問基於MOC'd QObject的類,並且可以從C++執行python代碼。是否有可能使用PyQt做類似的事情,還是僅僅用於在Python中編寫Qt?我可以在PythonQt中使用PyQt中的Qt元對象系統嗎?

我明白SIP用於暴露C/C++代碼到Python但似乎並不像使用元對象系統典雅。

回答

1

我從來沒有使用過PythonQt,但是在簡單介紹一下功能之後,就概念強調而言,它確實應該被稱爲QtPython。

PyQt的開始生活在蟒蛇原型Qt的C++應用程序的工具。因此,它最初是圍繞Qt庫一個非常瘦包裝,這使得它幾乎微不足道的端口Qt代碼從蟒到C++,反之亦然。做到這一點還是很容易的。但是自從PyQt4以來,重點已經轉移到使Python更易於編寫Qt應用程序上;和PyQt5一樣,它在這個方向上進一步發展。

因此PyQt的是,現在純粹是在Python中編寫Qt應用程序(和同樣的PySide)。它不提供任何在C++中執行python代碼的工具(除了間接通過虛擬函數)。如果你需要向python公開第三方Qt類,你需要用Sip來包裝它們。

至於元對象系統:PyQt包裝QMetaObject等等,但你的問題沒有足夠的信息知道這是否會對你有任何用處。

相關問題