Проблема в том, что когда некоторые данные поступают через интернет-линию, функция события подключается к выполнению. Но данные настолько массивны, что данные поступают до того, как событие будет выполнено. и Функция события соединения останавливается, и данные в основном не могут быть получены.
Я исправил функцию события как можно более кратко.
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». Это все и просто. На мой взгляд, слишком много данных неожиданно получено, поэтому, кажется, они останавливаются перед обработкой.