[英]Adding a Gtk::Box to a grid from another function error (C++, Gtkmm)
当我尝试在单击按钮时将 Gtk::box 从另一个 function 添加到网格中时,出现错误:
gtk_grid_attach_next_to: assertion '_gtk_widget_get_parent (child) == NULL' failed
但是,如果我将代码从添加函数(card_add)复制到主 function(kanban_init)它将毫无问题地添加到网格中,但我需要在按下按钮时向网格添加一个新框,它调用 card_add function 到将框添加到网格中。
在 header 文件 (tabs.h) 中:
Gtk::Grid kanbanGrid;
Gtk::Box todoBox, progressBox, doneBox, backlogBox;
Gtk::Box newCard;
Gtk::Label cardTitle, cardDesc
在主函数中(tabs::kanban_init):
tAdd.signal_clicked().connect(sigc::mem_fun(*this, &tabs::card_add));
kanbanGrid.attach(todoBox, 1, 1);
kanbanGrid.attach(progressBox, 2, 1);
kanbanGrid.attach(doneBox, 3, 1);
kanbanGrid.attach(backlogBox, 4, 1);
在添加新框中 function (tabs::card_add):
newCard.set_size_request(300, 30);
newCard.pack_start(cardTitle, Gtk::PACK_SHRINK);
newCard.pack_start(cardDesc, Gtk::PACK_SHRINK);
cardTitle.set_label("title");
cardDesc.set_label("description");
kanbanGrid.attach_next_to(newCard, todoBox, Gtk::POS_BOTTOM);
我不是百分百确定。 这是我的假设:
_gtk_widget_get_parent (child) == NULL
看起来像一个小部件已经有一个父级(所以已经附加)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.