Как ускорить выполнение кода Python для соединения Qt и для связи с другим ПК - PullRequest
0 голосов
/ 01 ноября 2019

Проблема в том, что когда некоторые данные поступают через интернет-линию, функция события подключается к выполнению. Но данные настолько массивны, что данные поступают до того, как событие будет выполнено. и Функция события соединения останавливается, и данные в основном не могут быть получены.

Я исправил функцию события как можно более кратко.

from PyQt5.QAxContainer import *
from PyQt5.QtCore import *

class AAA:
    def __init__(self):
        self.dict_real_contract = {}
        self.test = QAxWidget('api.ctrl.1')
        self.test.OnReceiveRealData.connect(self.onreceiverealdata)

    def onreceiverealdata(self, input1, input2, input3):
        if input1 == 'contract':   
            list_item_name = ['a', 'b', 'c', 'd']
            lists = self.dict_real_contract.get(input1, [])
            dicts = {}
            for i, in list_item_name:
                dicts[i] = self.api1(input2, input3)
            lists.append(dicts)
            self.dict_real_contract[input1] = lists

    def api1(self, input2, input3):
        res = self.test.dynamicCall('api1(QString, int, int)', input2, input3)

    def run(self):
        while True:
            pass

app.QApplication(sys.argv)
temp = AAA()
temp.run()
sys.exit(app.exec_())

Я использовал API, предоставленный третьей стороной. «OnReceiveRealData» - это функция, которая выполняет событие, когда данные получены посредством связи. Таким образом, «onreceiverealdata» выполняется, когда данные получены. Описание этого кода - ждать событий. и если данные получены, «onreceiverealdata» просто классифицирует значения в переменной «self.dict_real_contract». Это все и просто. На мой взгляд, слишком много данных неожиданно получено, поэтому, кажется, они останавливаются перед обработкой.

...