我正在使用 QListWidget 来控制和显示某些状态。
现在为了控制状态,使用小部件中的用户选择。 为了回应这一点,我连接了 SelectionChanged 信号。
但是状态可以自行更改,当发生这种情况时,我有一个全新的状态并希望更改选择。
为了实现这一点,我正在迭代状态和项目,如下所示:
for item, s in zip(items, state):
item.setSelected(s)
但是这会触发选择更改(即使在每次迭代中) 我根本不希望这种事发生。
还有其他方法来响应选择更改吗?
最佳答案
您可以简单地使用QSignalBlocker
类(class)。在调用发出信号的函数之前,请实例化一个 QSignalBlocker
对象。
// ui->ListWidget is available.
{
QSignalBlocker blocker( ui->ListWidget );
for ( auto item : items )
{
item->setSelected();
}
}
关于qt - QListWidget:更改选择而不触发selectionChanged,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31341442/