Я пытаюсь выяснить, как я могу выполнить итерацию в обратном порядке и пересылать через это, или, по крайней мере, вызвать метод в обратном порядке.
Вот как это работает.
Виджеты имеютstd :: vector Widget *, которые являются потомками этого элемента управления.Дочерний вектор имеет порядок z, что означает, что child [0] находится позади child [1] (в порядке рендеринга).Каждый элемент управления имеет указатель на своего родителя, за исключением корневого (фиктивного) виджета, чей родитель имеет значение NULL.
Для моего рендеринга мне нужно что-то вроде ступенчатой итерации (задом наперед), например:1007 *
root->child[0];
root->child[0]->child[0];
root->child[0]->child[1];
root->child[1];
root->child[1]->child[0];
root->child[1]->child[1];
Однако, чтобы узнать, какой виджет находится под мышью, я должен выполнить свою точку в тесте прямоугольника спереди назад:
root->child[9]->child[1];
root->child[9]->child[0];
root->child[9];
root->child[8]->child[2];
root->child[8]->child[1];
root->child[8]->child[0];
root->child[8];
Какую итерацию мне нужно выполнить эффективновышеуказанные 2 типа итераций?(спереди назад, спереди назад).
Спасибо