Отключить цикл обработки событий PyQt при редактировании таблицы

я разрабатываю графический интерфейс с PyQt. Графический интерфейс имеет qListWidget, qTableWidget и график, реализованный с помощью Mayavi. Список относится к фигурам, которые нанесены на график (например, цилиндры и конусы). Когда фигура выбрана в списке, я хочу фигуруs свойства для загрузки в таблицу (из словарной переменной) и фигуры, которые будут выделены на графике. Я'у меня есть заговор Майави, работающий отлично. Кроме того, если таблица редактируется, мне нужно перерисовать фигуру, чтобы отразить новое значение свойства (как для цилиндра, если радиус изменился).

Итак, когда элемент списка выбран -> обновить таблицу с помощью элемента 's свойства (из словарной переменной), выделите элемент на графике

Когда таблица редактируется -> обновить переменную словаря и заново построить элемент

Проблема: когда я выбираю элемент списка и загружаю данные в таблицу, сигнал qTableWidget ItemChanged срабатывает каждый раз при обновлении ячейки, что вызывает многократное повторное построение фигуры с неполными данными.

Существуют ли типичные средства отключения цикла событий GUI во время программного обновления таблицы? (У меня есть опыт работы с Excel VBA, в этом контексте настройка Application.EnableEvents = False предотвратит запуск события WorksheetChange каждый раз, когда ячейка обновляется программным способом.) Должен ли я иметь "выполняется обновление таблицы " переменная, чтобы предотвратить действие во время обновления таблицы? Есть ли способ обновить виджет таблицы все сразу вместо элемента за элементом? (Я'я признаюЯ намеренно избегаю фреймворка Model-View на данный момент, отсюда qListWIdget и qTableWidget).

Любые предложения? Я

Я первый раз постер, но давно пользуюсь StackOverflow, поэтому я просто хочу заранее поблагодарить вас за то, что вы такое классное сообщество!

Ответы на вопрос(3)

Ваш ответ на вопрос