我正在用 PyQt 开发一个 GUI。GUI 有一个 qListWidget、一个 qTableWidget 和一个用 Mayavi 实现的绘图。该列表指的是绘制的形状(例如圆柱体和圆锥体)。在列表中选择形状时,我希望将形状的属性加载到表中(从字典变量)并在图中突出显示形状。我的 Mayavi 绘图工作正常。此外,如果表格被编辑,我需要重新绘制形状,以反映新的属性值(如圆柱体,如果半径改变)。
So, when a list item is selected -> update the table with the item's properties (from a dictionary variable), highlight the item on the plot
编辑表格时 -> 更新字典变量并重新绘制项目
问题:当我选择一个列表项并将数据加载到表中时,每次更新单元格时都会触发 qTableWidget ItemChanged 信号,这会触发多次使用不完整数据重新绘制形状。
在以编程方式更新表时,是否有禁用 GUI 事件循环的典型方法?(我有使用 Excel VBA 的经验,在该上下文中设置 Application.EnableEvents=False 将防止在每次以编程方式更新单元格时触发 WorksheetChange 事件。)我是否应该有一个“正在进行的表更新”变量来防止在表正在更新?有没有办法一次更新表格小部件而不是逐项更新?(我承认我暂时有意避免使用 Model-View 框架,因此使用 qListWIdget 和 qTableWidget)。
有什么建议么?
我是第一次发帖,但是 StackOverflow 的长期用户,所以我只想提前感谢您成为如此棒的社区!