当我尝试在点击按钮后从另一个函数添加Gtk::box到一个网格中时,我得到了错误:
gtk_grid_attach_next_to: assertion '_gtk_widget_get_parent (child) == NULL' failed但是,如果我将代码从add函数( card_add )复制到main函数(kanban_init),它将不会出现问题地添加到网格中,但我需要在按下按钮时向网格中添加一个新的框,这将调用card_add函数将框添加到网格中。
在头文件(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);在add new框函数(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);发布于 2020-07-15 03:22:32
我不是百分之百确定。下面是我的假设:
_gtk_widget_get_parent (child) == NULL看起来像是一个小部件已经有了父级(所以应该已经分配了attached).https://stackoverflow.com/questions/62873743
复制相似问题