如何访问 [i] 中存储在 Gtk::Box / Gtk::Grid 中的小部件?

How can I access on a widget at [i], stored in a Gtk::Box / Gtk::Grid?

我有一个 std::vector 的 Gtk::Boxes,用于存储小部件。现在,我想访问 [i] 处的 Box 中的某个小部件。

for(auto& it : layouts) {
        for(int i = 0; i < it->size(); ++i) {
            if(it->itemAt(i)->widget()) {
                it->itemAt(i)->widget()->setVisible((std::string(it->get_name())== StringID));
            }
        }
    }

布局:std::vector 持有 Gtk::Boxes。
itemAt 是一个伪方法,(QT 方法)访问 Gtk::Box at (i).

Gtk::Box 不是正确的抽象。小部件上的每个操作都与容器中存在的其他小部件有关。如果您想控制容器中特定位置的 children,我建议您从 Gtk::Box 移动到 Gtk::Grid,它有特殊的方法来满足您的需要。例如,您可以使用:

Widget* Gtk::Grid::get_child_at(int left,
                                int top 
                               )    

有关详细信息,请参阅 the reference