FLTK窗口未在while循环c ++中显示
Posted
技术标签:
【中文标题】FLTK窗口未在while循环c ++中显示【英文标题】:FLTK window not showing in while loop c++ 【发布时间】:2019-07-10 09:14:26 【问题描述】:我正在尝试在 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)
std::cout << "-->" << std::endl;
Fl::run();
我遇到的问题是窗口没有显示。我想在while (!_doExit)
循环中继续在窗口上显示和重绘,我使用_doExit
很重要。我试过使用
while (Fl::wait > 0)
但是这个方法似乎有自己的循环来等待事件。 如何像我一样实现循环并显示窗口?
【问题讨论】:
抱歉,自从我提出问题以来,我一直在忙于另一个库。 【参考方案1】:在调用Fl::run
之前,FLTK 什么都不做。因此,调用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();
在给定的回调函数中,您可以在 FLTK 中进行绘图或任何您想要实现的操作,而不是由来自活动小部件本身的事件驱动。
【讨论】:
以上是关于FLTK窗口未在while循环c ++中显示的主要内容,如果未能解决你的问题,请参考以下文章