首页 > 解决方案 > 如何在 Qt Creator 中单击按钮运行 python 程序并在 Qlabel 上显示结果

问题描述

我试图在按钮单击时运行执行 python 程序但出现错误......

Qt 程序

QProcess p;
QStringList params;
params<<"C:/Users/user/Desktop/image/temp.py";

p.start("C:/Users/user/anaconda3/python.exe",params);    
p.waitForFinished(-1);    
qDebug()<<"finished";

QStringp_stdout=p.readAll();    
qDebug()<<p_stdout;
QStringp_stderr=p.readAllStandardError();    
if(!p_stderr.isEmpty());
qDebug()<<"Pythonerror:"<<p_stderr;

Python 程序temp.py

from PIL import Image
import numpy as np

def change(path1,path2):
    im1=Image.open(path1,"r")
    im2=Image.open(path2,"r")

    buffer1=np.asarray(im1) 
    buffer2=np.asarray(im2)
    buffer3=buffer1-buffer2

    changed=Image.fromarray(buffer3)
    im1.show()
    im2.show()

    changed.show()
    changed.save(r"C:\Users\user\Desktop\image\changed.jpg")

    return(changed.show)

change(r"C:\Users\user\Desktop\image\Vale.jpg",r"C:\Users\user\Desktop\image\Vale2.jpg")

QT 上的错误:

finished
""
Python error:
 "Traceback (most recent call last):\r\n File "C:/Users/user/Desktop/image/temp.py", line 1, in <module>\r\n from PIL import Image\r\n File "C:\Users\user\anaconda3\lib\site-packages\PIL\Image.py", line 94, in <module>\r\n from . import _imaging as core\r\nImportError: DLL load failed while importing _imaging: The specified module could not be found.\r\n"

Qt 中的第二种方法: (python 程序与 temp.py 相同)

QStringprogram("C:/Users/user/anaconda3/python.exe");

QStringListargs=QStringList()<<"C:/Users/user/Desktop/image/temp.py";

int exitcode=QProcess::execute(program,args);

错误(Qt):

File "C:/Users/user/Desktop/image/temp.py", line 1, in <module> 

from PIL import Image
File "C:\Users\user\anaconda3\lib\site-packages\PIL\Image.py", line 94, in <module>
from . import _imaging as core
ImportError: DLL load failed while importing _imaging: The specified module could not be found.

标签: pythonpandasqtlibraries

解决方案


推荐阅读