QListWidget:更改选择而不触发selectionChanged



我使用一个QListWidget来控制和显示一些状态。

现在要控制状态,要使用小部件中的用户选择。为了响应这个,我连接了selectionChanged信号。

然而,状态可以自己改变,当这种情况发生时,我有一个全新的状态,并希望选择改变。

为了实现这一点,我在状态和项目上迭代,像这样:

    for item, s in zip(items, state):
        item.setSelected(s)

但是这会触发selectionChanged(即使在每次迭代中)我根本不希望这种事发生。

是否有其他方式响应选择更改?

您可以简单地使用QSignalBlocker类。在调用发出信号的函数之前,实例化一个QSignalBlocker对象。

// ui->ListWidget is available.
{
    QSignalBlocker blocker( ui->ListWidget );
    for ( auto item : items )
    {
        item->setSelected();
    }
}

相关内容

  • 没有找到相关文章

最新更新