Moin,
ich habe noch einmal eine Frage zur SFGUI und wie man sie benutzt. Wie es in jeder GUI mal vorkommt soll ein Object gelöscht werden, es soll also weder gerendert werden noch soll es auf aktion durch den User eingehen.
Wenn ich das richtig verstanden habe sollte dies mit der Funktion
XYZ->Remove(ZYX) funktioniren.
Ich erstelle nun einen Button. Wenn man ihn drückt soll er verschwinden. Soweit so gut. Doch leider wird er wohl nur aus dem Listener raus geöscht, gerendert wird er weiterhing. Mache ich etwas falsch?
|
C-/C++-Quelltext
|
1
2
3
|
button = sfg::Button::Create("click");
button->GetSignal(sfg::Widget::OnLeftClick).Connect(std::bind(&handlButton));
desktop.Add(button);
|
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
|
void handlButton()
{
if (button->IsGloballyVisible())
{
desktop.Remove(button);
std::cout << "delete button" << std::endl;
}
return;
}
|
|
C-/C++-Quelltext
|
1
2
3
4
|
desktop.Update(1.0f);
render_window.clear(sf::Color{ 50, 50, 50 });
sfgui.Display(render_window);
render_window.display();
|
ich würde mich sehr über eine Antwort freuen