为啥这个窗口没有出现
Posted
技术标签:
【中文标题】为啥这个窗口没有出现【英文标题】:why is this window not appearing为什么这个窗口没有出现 【发布时间】:2019-08-03 19:23:35 【问题描述】:我希望按钮的回调方法在每次单击按钮时实例化一个窗口(带有编辑器),这可能会导致多个窗口同时显示编辑器。现在,如果只有一个出现,我会很高兴——它不会出现。
也欢迎对 FLTK 和 C++ 编程实践提出一般性意见。
#include <FL/Fl.H>
#include <FL/Fl_Window.H>
#include <FL/Fl_Button.H>
#include <FL/Fl_Text_Editor.H>
#include <FL/Fl_Text_Buffer.H>
class MainWin : public Fl_Window
public:
MainWin(int w, int h, const char *title);
~MainWin();
Fl_Button* gobtn;
Fl_Text_Editor* ed; // first editor included with main window
Fl_Text_Buffer* buf;
private:
static void gomthd(Fl_Widget *, void *); // "go" method
;
class AdditionalWin : public Fl_Window // more editors if necessary
public:
AdditionalWin(int w, int h, const char *title);
~AdditionalWin();
Fl_Text_Editor *ed;
Fl_Text_Buffer *buf;
;
int main ()
MainWin win(105, 405, "main");
return Fl::run();
MainWin::MainWin(int w, int h, const char* title):Fl_Window(w,h,title)
gobtn = new Fl_Button(8, 38, 35, 20, "go");
gobtn->callback(gomthd, this);
ed = new Fl_Text_Editor(6, 67, 93, 331);
buf = new Fl_Text_Buffer();
ed->buffer(buf);
end();
resizable(this);
show();
AdditionalWin::AdditionalWin(int w, int h, const char *title):Fl_Window(w, h, title)
ed = new Fl_Text_Editor(6, 67, 93, 331);
buf = new Fl_Text_Buffer();
ed->buffer(buf);
end();
resizable(this);
show();
void MainWin::gomthd(Fl_Widget* o, void* v)
AdditionalWin awin(105, 405, "more");
awin.position(1, 1);
awin.show(); // ??? nothing appears
MainWin::~MainWin()
AdditionalWin::~AdditionalWin()
【问题讨论】:
【参考方案1】:派对很晚,但仍然:我认为新窗口永远不会显示,因为 awin 作为一个局部变量,一旦 MainWin::gomthd() 函数返回就会被销毁。
【讨论】:
以上是关于为啥这个窗口没有出现的主要内容,如果未能解决你的问题,请参考以下文章
简单的WINDOWS程序问题 为啥没有显示窗口? CREATEWINDOW的第一个参数“已注册的窗口类名”该写啥啊?
为啥某些 Flask 会话值在关闭浏览器窗口后会从会话中消失,但稍后会在没有我添加它们的情况下重新出现?
为啥开启电脑时会出现“insert a smart card”的呢?使用电脑是老是会弹出“索引器停止工作”的窗口呢?