gpt4 book ai didi

qt - 有没有办法区分编程索引更改和用户选择索引更改?

转载 作者:行者123 更新时间:2023-12-03 07:17:46 25 4
gpt4 key购买 nike

我有一个 QComboBox。我有两个用例。在一种用例中,组合框通过 setCurrentIndex() 以编程方式更改为具有新索引。在另一个用例中,用户用鼠标单击并选择一个新的组合框选项。

这两个用例都会触发 QComboBox::currentIndexChanged(int) 信号。对于我尝试移植的代码来说,这是一个主要问题。在旧框架(不是 Qt)中,仅当用户选择一个项目时才会调用类似的回调机制,而当索引以编程方式更改时则不会。

我如何在 Qt 中模仿这种行为?

最佳答案

您可以监听 QComboBox::activated(int index)QComboBox::currentIndexChanged(int index) 信号。

如果用户更改该值,QComboBox::activated(int index)QComboBox::currentIndexChanged(int index)信号都会被发出。

如果以编程方式更改值,则只会发出 QComboBox::currentIndexChanged(int index) 信号。所以基本上,前一个信号意味着“用户将索引更改为该值”。

示例:

int main(int argc, char* argv[]) {

QComboBox* combo = new QComboBox;

QObject::connect(combo, &QComboBox::activated, [&](int index) {
//User changed the value
});
}

希望对您有所帮助!

关于qt - 有没有办法区分编程索引更改和用户选择索引更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24690128/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com