Можно ли отправить сигнал QT из функции njit? - PullRequest
0 голосов
/ 29 января 2020

Мне интересно, возможно ли испускать сигнал Qt из функции njit. Я сомневаюсь в этом, но я не уверен.

Например, с помощью приведенного ниже кода можно ли передать сигнал updateTime в функцию вычисления njit?

from PyQt5.QtCore import *
from numba import jitclass,jit,njit, types, typeof
from numba import boolean, int32, float64,uint8
import numpy as np
import sys
import os


class SenderObject(QObject):
    something_happened = pyqtSignal(np.float)

@njit
def Computation(T,t,y,updateTime):
    for i in range(T):
        y[i] = t[i]
        if np.mod(i,100):
            updateTime.something_happened.emit(i)



class myclass():
    updateTime = SenderObject()
    def __init__(self):

        self.T = 10000

    def Compute(self):
        t=np.arange(self.T)
        y=np.zeros(self.T)
        Computation(self.T, t, y, self.updateTime)

@pyqtSlot(np.float)
def printstuff(s):
    print(s)

if __name__ == "__main__":
    instance = myclass()
    instance.updateTime.something_happened.connect(printstuff)
    instance.Compute()
...