C++11 FLTK窗口不显示在while循环c++;
我试图在FLTK中实现一个游戏循环C++11 FLTK窗口不显示在while循环c++;,c++11,fltk,C++11,Fltk,我试图在FLTK中实现一个游戏循环 void SnakeFLTK::init() { _display = new Fl_Window(900, 600); if (!_display) throw SnakeFLTKException("Couldn't make fltk window!"); _display->color(FL_BLACK); _display->show(); while (!_doExit) {
void SnakeFLTK::init() {
_display = new Fl_Window(900, 600);
if (!_display)
throw SnakeFLTKException("Couldn't make fltk window!");
_display->color(FL_BLACK);
_display->show();
while (!_doExit) {
std::cout << "-->" << std::endl;
}
Fl::run();
}
但是这个方法似乎有自己的循环来等待事件。
如何像以前那样实现循环并显示窗口?FLTK在调用
Fl::run
之前什么都不做。因此,在调用Fl::run
之后不能执行任何操作,因为只有在主窗口关闭时函数才会返回
正是为了在Fltk本身“运行”时执行某些操作,您可以这样注册到空闲循环:
void CallbackFunc( void* )
{
std::cout << "Hallo" << std::endl;
}
int main() {
auto _display = new Fl_Window(900, 600);
_display->color(FL_BLACK);
_display->show();
Fl::add_idle( CallbackFunc );
Fl::run();
}
void CallbackFunc(void*)
{
std::cout show();
Fl::add_idle(CallbackFunc);
Fl::run();
}
在给定的回调函数中,您可以在FLTK中进行绘图或任何您想在FLTK中实现的操作,这些操作不是由来自活动小部件本身的事件驱动的。哦,对不起,自从我提出问题以来,我一直忙于另一个库。
void CallbackFunc( void* )
{
std::cout << "Hallo" << std::endl;
}
int main() {
auto _display = new Fl_Window(900, 600);
_display->color(FL_BLACK);
_display->show();
Fl::add_idle( CallbackFunc );
Fl::run();
}