如何访问 [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。
我有一个 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。