【发布时间】:2016-05-20 17:18:19
【问题描述】:
如上所述,我正在尝试让一个非常简单的 FLTK 1.3.3 应用程序正常工作。 但是,即使只有一个简单的 Fl_Window 和 1 个 Fl_Button,似乎也没有任何效果。有人可以帮忙吗?
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;
};
这是实现
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();
}
但是当像这样简单地运行应用程序时:
int main(int argc, char** argv)
{
MainEditorWindow* mw = new MainEditorWindow(800, 600, "SHIP Editor");
mw->show(argc,argv);
return Fl::run();
}
窗口显示得很好,它的可调整大小可移动等,draw() - 函数正在被调用等等。但是窗口本身只是空白。它什么也没有显示,尤其是Fl_Button。谁能告诉我为什么会这样?据我所知,我的代码应该没有什么特别的问题。
【问题讨论】:
-
您不需要以某种方式将按钮添加到窗口吗?
-
@Hedanito 在
begin()和and()之间创建小部件正是这样做的。 -
我只能想象线程危险:|
-
@Hedanito 我也担心这一点——因为至少可以说 FLTKs API 已经过时了。不过他们有一个
add(Fl_Widget*)函数。
标签: c++ user-interface fltk