python呼叫qt Qt 下呼叫 Python

2021-10-11 05:07:14 字數 1501 閱讀 9827

qt是乙個跨平台的c++圖形使用者介面應用程式框架,而python是一門非常強大的程式語言,本文主要介紹了如何在osx系統下qt呼叫python指令碼。

先上**:

#include

//包含呼叫python相應的標頭檔案

#include

int main(int argc, char *ar**)

//初始化python直譯器,這是呼叫操作的第一步

py_initialize();

if( !py_isinitialized() ){

return -1;

//執行單句python語句,用於給出呼叫模組的路徑,否則將無法找到相應的呼叫模組

pyrun_******string("import sys");

//獲取qt_python_fun.py模組的指標

pyobject* pmodule = pyimport_importmodule("qt_python_fun");

if (! pmodule){

printf("can't open python file\n");

return -1;

//獲取hello函式的指標

pyobject* pfunhello = pyobject_getattrstring(pmodule,"hello");

if (!pfunhello){

printf("get function hello failed\n");

return -1;

//呼叫函式,傳入引數為null

pyobject_callfunction(pfunhello,null);

//銷毀python直譯器,這是呼叫的最後一步

py_finalize();

return a.exec();

之後我們新建乙個名為qt_python_fun.py的python檔案

寫入以下**:

#!/usr/bin/env python

# -*- coding: utf-8 -*-

def hello():

print "hello"

此時我們的**依舊無法執行,因為在c++中呼叫python在編譯時需要新增相關的路徑,在osx系統中,我們需要在字尾為.pro的檔案中加入以下**:

includepath += -i /system/library/frameworks/python.framework/versions/2.7/headers

libs += -l /system/library/frameworks/python.framework/versions/2.7/include/python2.7 -lpython2.7

這時,我們的程式才正真可以執行

以上只是最簡單的呼叫,關於c/c++ 和python之間的互相呼叫網上可以搜尋到大量的資源以供學習。值得注意的是路徑的新增,qt是跨平台的圖形使用者介面應用程式,python在linux,osx,windows下的路徑均有不同,而往往就是路徑錯誤使得程式無法正常執行

linux 下呼叫python檔案

在linux下直接呼叫python 檔案的方法 在裝有python環境的系統下執行 python 檔名.py 利用shell檔案呼叫python的方法 step01 建立python指令碼,例如 pythontest.r step02 建立shell指令碼,例如 runpythontest.sh,內...

XP下呼叫RPC失敗

解決xp下執行rpc顯示 拒絕訪問 的問題 採用rpc通訊的服務程式,在win2000和win2003下都執行正常,但在xp下執行失敗,錯誤提示是 拒絕訪問 怎麼解決呢?解決方法如下 單擊 開始 單擊 執行 鍵入 gpedit.msc 然後單擊 確定 開啟組策略。開啟組策略後,選擇 計算機配置 管理...

繼續談下呼叫約定

今天寫了個dll是用extern c 匯出的,以前一直用.def檔案,結果出現了以下錯誤 無法解析的外部符號 declspec dllimport int cdecl setstatus int imp setstatus yahh z 該符號在函式 public void thiscall cte...