gpt4 book ai didi

c++ - 遍历 QList 并在包含的对象上调用函数

转载 作者:行者123 更新时间:2023-12-01 14:44:40 24 4
gpt4 key购买 nike

我在遍历 QList 和调用包含的对象的成员函数时遇到问题。我正在尝试禁用此窗口中的所有按钮。

这是我的代码

void TicTacToe::disableGame(){
QList<QPushButton *> allPButtons = findChildren<QPushButton *>();
QList<QPushButton *>::iterator i;
for (i = allPButtons.begin(); i != allPButtons.end(); ++i)
allPButtons[i]->setEnabled(false);
}

但它不会编译。那么如何正确使用iterator呢?

最佳答案

迭代器的要点是在迭代时不再需要列表(或其他容器对象)。您只需要一个知道如何遍历其内容的迭代器,以及一个知道应该在何处停止的迭代器。

这里你有一个指针迭代器,所以你必须在迭代器上调用 operator*(),然后在你的指针上调用 * (或 -> 让您的生活更轻松)。

所以你需要使用

(*i)->setEnabled(false);

你也可以看看 qt 的 foreach macro ,或使用 range based for loop .它们使您的代码更加简洁明了。

关于c++ - 遍历 QList 并在包含的对象上调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42798906/

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