QTableWidget信号上的无限循环(cellChanged)

问题描述 投票:0回答:1

我有一个信号从QTableWidget传到功能recalculate(int, int)的插槽中。根据用户输入,该函数进行一些计算并更改单元格背景色。

connect(ui->tableWidget_input, SIGNAL(cellChanged(int, int)), this, SLOT(recalculate(int, int)));

问题是cellChanged在更改背景颜色时会发出信号,我需要在仅更改文本]时会发出信号[[only颜色变化会导致无限循环,如下所示:

    用户更改单元格值,将发出信号。
  1. [Recalculate():通过条件时,背景会更改。
  2. [当背景改变时,Qt认为单元已经改变并且信号被发射。
  3. [Recalculate():通过条件时,背景会更改。
  4. 再次进入无限。
  5. 请,您是否知道如何通过

    仅文本更改

进行信号发射-无背景颜色更改?我有一个信号从QTableWidget传到插槽,函数recalculate(int,int)在哪里。根据用户输入,该函数进行一些计算并更改单元格背景颜色。 ...
c++ qt qtablewidget
1个回答
0
投票
一个简单的解决方案是使用blockSignals()阻止QTableWidget信号的发射:
© www.soinside.com 2019 - 2024. All rights reserved.