GUI и асинхронная функция

Горг

Новичок
Пользователь
Май 4, 2022
5
1
3
Как из асинхронной функции получить доступ к элементу GUI? Есть асинхронная библиотека asyncua (бывшая FreeOPCUa) реализующая стандарт OPC UA, нужно подружить ее с GUI нарисованным PySide2. В элемент QTreeView надо загрузить дерево-структуру OPC-сервера. Вычитывание структуры с сервера сделал так:
Python:
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())

Функция запускается при нажатии QpushButton (asyncio.run(connect(url_to_server))) и вычитывает дерево в консоль, а теперь надо не в консоль, а в QtreeView. Подскажите куда копать?
 

Форум IT Специалистов