Уведомления

Группа в Telegram: @pythonsu

#1 Май 15, 2022 15:00:25

Gorg
Зарегистрирован: 2022-05-15
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

доступ к GUI элементу из асинхронной функции

Доброго всем! Есть асинхронная библа для работы с 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)) Подскажите куда копать? Я только начал с питоном работать и не знаю как работать из асинхрона с главным потоком, думаю, если просто создавать внутри функции элементы дерева, будут краши

Отредактировано Gorg (Май 15, 2022 15:02:43)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version