我想從不是立即返回的python腳本調用一個包裝的C++函數(詳細地說:它是一個啓動QApplication窗口的函數,函數是QApplication-> exec())。所以在這個函數調用之後,我想繼續到Python腳本中的下一行,但執行該腳本和上一行時,它會永久掛起。從python腳本中調用非返回的python函數
相反,當我在python命令行中手動輸入我的腳本行時,我可以在非返回函數調用行上再按一次第二次輸入後繼續我的下一行。
那麼如何解決執行腳本時的問題呢?
謝謝!
編輯:
我的python解釋器被嵌入到應用程序中。我想爲這個應用程序編寫一個擴展,作爲一個單獨的Qt4窗口。所有的Python的東西只是爲了讓我的圖形插件可以訪問每個腳本(每boost.python包裝)。
我的Python腳本:
import imp
import os
Plugin = imp.load_dynamic('Plugin', os.getcwd() + 'Plugin.dll')
qt = Plugin.StartQt4() # it hangs here when executing as script
pl = PluginCPP.PluginCPP() # Creates a QMainWindow
pl.ShowWindow() # shows the window
對Qt的啓動功能的C++代碼如下所示:
class StartQt4
{
public:
StartQt4()
{
int i = 0;
QApplication* qapp = new QApplication(i, NULL);
qapp->exec();
}
};
請給我們的代碼。 – 2009-06-30 09:02:22