如何解决如何访问存储在 Gtk::Box / Gtk::Grid 中的 [i] 小部件?
我有一个 Gtk::Boxes 的 std::vector,用于存储小部件。现在,我想在 [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 方法)在 (i) 处访问 Gtk::Box。
解决方法
Gtk::Box
不是正确的抽象。小部件上的每个操作都与容器中存在的其他小部件相关。如果您想控制容器中特定位置的子项,我建议从 Gtk::Box
移动到 Gtk::Grid
,它具有特殊的方法来执行您需要的操作。例如,您可以使用:
Widget* Gtk::Grid::get_child_at(int left,int top
)
有关详细信息,请参阅 the reference。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。