Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Volker_Neff

Treue Seele

  • »Volker_Neff« ist der Autor dieses Themas

Beiträge: 249

Wohnort: Hamburg

  • Private Nachricht senden

1

18.11.2015, 21:07

SFGUI Zwei Vererbte Klassen zwei Unterschiedliche Ergebnisse

Gute Abend,

ja der Name ist ein wenig irre führend aber gut.

Also ich habe eine Parent Klasse die ein Dialog Fenster darstellt. Von der wollte ich nun zwei Klasse erben lassen. Zum einen Info Fenster und zum anderen ein Setting Fenster.
Nun wird in dem Info Fenster der Text wunderschön gerendert, in dem Settingfenster dagegen leider nicht. Ich kann langsam nicht mehr nachvollziehen warum das der Fall ist:

Info Dialog sieht so aus:
Der auskommentierte Teil hat funktioniert und ist nur fürs Deboggen raus geflogen.

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
InfoDialogWindow::InfoDialogWindow(const std::string message, const std::string titel)
    : DialogWindow{ titel }
{
    /*this->box = sfg::Box::Create(sfg::Box::Orientation::VERTICAL);
    this->lable = sfg::Label::Create(formate_string(const_cast<std::string&>(message), 30));

    this->button = sfg::Button::Create("OK");
    button->GetSignal(sfg::Widget::OnLeftClick).Connect(std::bind(&InfoDialogWindow::CALLBACK_close, this));

    box->Pack(lable, false, false);
    box->Pack(button);

    Add(box);

    if (lable->GetRequisition().x <= 400, lable->GetRequisition().y <= 200)
        SetRequisition(sf::Vector2f{ lable->GetRequisition().x + 50, lable->GetRequisition().y + 80 });
    else
        SetRequisition(sf::Vector2f{ 200, 400 });

    if (is_ressize())
        set_resize(false);*/

    Add(sfg::Label::Create("ABD"));
        MainClass::add_window(window->operator sfg::Window::Ptr());
}

void  InfoDialogWindow::create(const std::string& message, const std::string& titel)
{
    DialogWindow* window = new InfoDialogWindow(message, titel);
}


Das ganze wird dann so aufgerufen InfoDialogWindow::create("Test");

Nun das Settingsfenster welches Probleme macht

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
SettingDialogWindow::SettingDialogWindow(std::string title, std::function<void()> save_callback_funktion)
    : DialogWindow(title)
{
    set_callback(save_callback_funktion);

    Add(sfg::Label::Create("ABD"));

    MainClass::add_window(operator sfg::Window::Ptr());
}

Und wird so Aufgerugen this->setting_window = std::make_shared<SongObjectSettingDialogWindow>( SongObjectSettingDialogWindow(create_datastruct(), std::bind(&SongObject::refresh_time_lable, this)));

Beide Klassen greifen auf den Selben C-Tor zu der dieser wäre:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
DialogWindow::DialogWindow(const std::string& titel)
{
    this->window = sfg::Window::Create(
        sfg::Window::Style::TITLEBAR |
        sfg::Window::Style::TOPLEVEL |
        sfg::Window::Style::BACKGROUND |
        sfg::Window::Style::SHADOW);
    this->window->SetRequisition(sf::Vector2f{ 100.0f, 100.0f });
    this->window->GetSignal(sfg::Window::OnLostFocus).Connect(std::bind(&DialogWindow::CALLBACK_status, this));
    SetTitle(titel);

    this->scrolledinterface = sfg::ScrolledWindow::Create();
    this->scrolledinterface->SetScrollbarPolicy(
        sfg::ScrolledWindow::HORIZONTAL_AUTOMATIC |
        sfg::ScrolledWindow::VERTICAL_AUTOMATIC);

    this->window->Add(this->scrolledinterface);

// Und dies wäre die Add funktion
void  DialogWindow::Add(const sfg::Widget::Ptr widget)
{
    this->scrolledinterface->AddWithViewport(widget);
}
}


Ich wäre sehr sehr froh wenn jemand einen Fehler finden würde. Ich bin langsam am verzweifeln

eXpl0it3r

Treue Seele

Beiträge: 386

Wohnort: Schweiz

Beruf: Professional Software Engineer

  • Private Nachricht senden

2

25.11.2015, 14:26

Hast du irgend ein Screenshot oder so? Mit "es wird nicht wunderschön gerendert" und ein paar Zeilen Code können ziemlich wenig anfangen...

Ausserdem empfehle ich dir sehr, dass offizielle SFGUI Forum zu verwenden. Nicht viele hier kennen sich aus mit SFGUI. ;)
Blog: https://dev.my-gate.net/
—————————————————————————
SFML: https://www.sfml-dev.org/
Thor: http://www.bromeon.ch/libraries/thor/
SFGUI: https://github.com/TankOs/SFGUI/