Creating buttons inside a panel
« on: 09 May 2015, 00:42:22 »
I am trying to develop a program that handles inputs in different tabs. This tabs shows and hides different panels.
I want to show different EditBoxes depending on what tab is shown.
The tabs, panels and EditBoxes are created outside main in void loadWidgets(tgui::Gui& gui)

This works if I create the buttons like this;
Code: [Select]
tgui::EditBox::Ptr editBoxModelName(*panel1, "modelName");
But if I do it like that I can't get the value in main from the editBox using;
Code: [Select]
tgui::EditBox::Ptr editBoxModelName = gui.get("modelName");
sf::String modelName = editBoxModelName->getText();
  (Assertion failed: m_WidgetPtr != nullptr

If I use gui instead of *panel1 when I create my EditBox I can get the value, but of course the EditBox is shown on all my tabs.

How am I supposed to handle this?
I don't think I have to say that I am a beginner on this :P

Thanks in advance!

*

texus

  • *****
  • 1161
    • View Profile
    • Texus's Blog
Re: Creating buttons inside a panel
« Reply #1 on: 09 May 2015, 00:49:15 »
The get function will look only at the direct children of the widget by default. Since the edit box is not a direct child of gui, it will not find it.

Every container widget actually has a get function, not just Gui, so you would have to do this:
panel1->get("modelName");

I also added an option for get to search recursively some time ago, so this is also an option:
gui.get("modelName", true);

Re: Creating buttons inside a panel
« Reply #2 on: 09 May 2015, 01:27:34 »
This worked great!
Thanks a lot for the fast and great support :)