带有按钮回调的新窗口未在 fltk 中打开

Posted

技术标签:

【中文标题】带有按钮回调的新窗口未在 fltk 中打开【英文标题】:New window not opening in fltk with button callback 【发布时间】:2017-01-23 14:04:25 【问题描述】:

我创建了一个按钮,单击该按钮时将通过回调打开一个新窗口,但是当单击此按钮时没有任何反应,但是当它被释放时它会闪烁新窗口并且不允许我在新窗口中查看内容。请任何帮助将不胜感激。

回调

//Callback for advanced search
static void ad_cb(Fl_Button *theButton, void*)

    Fl_Window adw (10,10,600,400);
    Fl_Button  adcc (30,40,120,20,"Advanced Search");
    adcc.tooltip ("Make advanced search");
    adw.show();



按钮

Fl_Button  ad (30,460 + 40,120,20,"Advanced Search");
    ad.tooltip ("Make advanced search");
    ad.callback((Fl_Callback*)ad_cb);

【问题讨论】:

请提供minimal reproducible example。 【参考方案1】:

函数一退出就调用析构函数。这就是为什么你只看到一个闪光。改成

//Callback for advanced search
static void ad_cb(Fl_Button *theButton, void*)

    Fl_Window* adw = new Fl_Window (10,10,600,400);
    Fl_Button*  adcc = new Fl_Button (30,40,120,20,"Advanced Search");
    adcc->tooltip ("Make advanced search");
    adw->show();

您可以通过点击右上角的 x 来关闭窗口。

【讨论】:

非常感谢您的回答,它解决了我的问题,但我想让主窗口在按钮调用的窗口关闭之前无法工作 使其成为模态 - 请参阅 ***.com/questions/25805938/…

以上是关于带有按钮回调的新窗口未在 fltk 中打开的主要内容,如果未能解决你的问题,请参考以下文章

FLTK 等待事件关闭窗口

FLTK窗口未在while循环c ++中显示

FLTK 子窗口未在 Linux 上重绘

c#中,如何实现一个按钮控制另一个窗口的打开和关闭,即点击一下,新窗口打开,再点击一下,打开的新窗

在带有两个控制器的角度材质的新选项卡中打开一个新的html

FLTK:按下哪个按钮 - 将数字传递给按钮的回调(lambda)