Доброго всем! Есть асинхронная библа для работы с OPC-серверами. Работает нормально, но мне надо привязать ее работу к GUI (PySide2) для последующих манипуляций с элементами. Пример кода вычитывающий дерево opc-сервера:
async def browse_node(node):
try:
children = await node.get_children()
for child in children:
ch_name = await child.read_browse_name()
print('Child: ', ch_name.Name)
await browse_node(child)
except Exception:
print('browsing failed')
async def connect(url):
async with Client(url=url) as client:
root = client.nodes.root
qn = await root.read_browse_name()
print('Root name: ', qn.Name)
await browse_node(root)
print('Children of root are: ', await root.get_children())
Тут я читаю дерево в консоль рекурсией, а нужно передать в qtreeview. Запускаю вычитывание по кнопке из GUI asyncio.run(connect(url_to_server)) Подскажите куда копать? Я только начал с питоном работать и не знаю как работать из асинхрона с главным потоком, думаю, если просто создавать внутри функции элементы дерева, будут краши