Desativar o loop de eventos PyQt durante a tabela de edição
Estou desenvolvendo uma interface gráfica com o PyQt. A GUI tem um qListWidget, um qTableWidget e um gráfico implementado com o Mayavi. A lista refere-se a formas que são plotadas (cilindros e cones, por exemplo). Quando uma forma é selecionada na lista, quero que as propriedades da forma sejam carregadas na tabela (de uma variável de dicionário) e a forma a ser destacada na plotagem. Eu tenho a plotagem do Mayavi funcionando bem. Além disso, se a tabela for editada, preciso que a forma seja re-plotada, para refletir o novo valor da propriedade (como para um cilindro, se o raio for alterado).
Assim, quando um item da lista é selecionado -> atualizar a tabela com as propriedades do item (de uma variável de dicionário), realce o item na plotagem
Quando a tabela é editada -> atualiza a variável do dicionário e traça novamente o item
O Problema: quando eu seleciono um item de lista e carrego dados na tabela, o sinal qTableWidget ItemChanged é acionado toda vez que uma célula é atualizada, o que aciona a re-plotagem da forma várias vezes com dados incompletos.
Existe um meio típico de desativar o loop de eventos da GUI enquanto a tabela está sendo atualizada programaticamente? (Tenho experiência com o Excel VBA, nessa configuração de contexto Application.EnableEvents = False impedirá o acionamento de um evento WorksheetChange sempre que uma célula for programaticamente atualizada.) Devo ter uma variável "table update in progress" para impedir que uma ação seja executada enquanto a tabela está sendo atualizada? Existe uma maneira de atualizar o widget de tabela de uma só vez, em vez de item por item? (Eu admito que estou intencionalmente evitando o framework Model-View no momento, daí o qListWIdget e o qTableWidget).
Alguma sugestão?
Eu sou um pôster pela primeira vez, mas um usuário de longa data do StackOverflow, então eu só quero dizer obrigado antecipadamente por ser uma comunidade tão incrível!