Wie oben erwähnt, versuche ich eine sehr einfache Anwendung FLTK 1.3.3 zu arbeiten. Aber selbst mit nur einem einfachen Fl_Window und 1 Fl_Button scheint nichts zu funktionieren. Kann jemand helfen?Fl_Window Unterklasse funktioniert nicht
class MainEditorWindow : public Fl_Window
{
public:
MainEditorWindow(int _width, int _height, std::string _title);
~MainEditorWindow();
virtual void draw();
virtual int handle(int _event);
private:
Fl_Button* m_btnExit;
};
Und hier ist die Umsetzung
MainEditorWindow::~MainEditorWindow()
{
}
int MainEditorWindow::handle(int _event)
{
return 1;
}
void MainEditorWindow::draw()
{
m_btnExit->redraw();
}
MainEditorWindow::MainEditorWindow(int _width, int _height, std::string _title) : Fl_Window(_width, _height, _title.c_str())
{
this->begin();
m_btnExit = new Fl_Button(0, 0, 40, 40, "EXIT");
m_btnExit->color(FL_RED);
this->color(FL_WHITE);
this->end();
}
Aber wenn einfach die Anwendung wie folgt ausgeführt werden:
int main(int argc, char** argv)
{
MainEditorWindow* mw = new MainEditorWindow(800, 600, "SHIP Editor");
mw->show(argc,argv);
return Fl::run();
}
Das Fenster zeigt sich fein, dessen Größe veränderbar beweglich, um die beschriebenen draw()
- Funktion wird gerufen und all das. Aber das Fenster selbst ist nur leer. Es zeigt einfach nichts, vor allem nicht die Fl_Button
. Kann mir jemand sagen, warum das passiert? Soweit ich das beurteilen kann, sollte mein Code nicht besonders falsch sein.
Sie nicht, müssen Sie die Taste, um das Fenster in einige hinzufügen Weg? –
@Hedanito Erstellen Widgets zwischen 'begin()' und 'und()' tut genau das. – calcyss
Ich kann mir nur die Threading Gefahren vorstellen: | –