除了构造函数参数之外,我可以更改 FL_Window 的标题吗?
Posted
技术标签:
【中文标题】除了构造函数参数之外,我可以更改 FL_Window 的标题吗?【英文标题】:Can I change a FL_Window's caption other than in a constructor argument? 【发布时间】:2012-01-10 15:09:48 【问题描述】:MainWindow::MainWindow(int w, int h, const string& c)
: Fl_Window(w, h, c.c_str()) // Don't call constructor over here
script.load_file(WIN_CONFIG_SCRIPT);
int width = script.get_global_int("width");
int height = script.get_global_int("height");
const char* caption = script.get_global_string("caption").c_str();
/** CALL CONSTRUCTOR NOW **/
//NOTE: I don't know a way to change an FLTK Fl_Window's Caption after
//initialising it.
Toolbar* toolbar = new Toolbar(0, 0, this->w(),30);
toolbar->add_button("Hello");
toolbar->add_button("World!");
end();
如何在构造函数内部初始化基类?或者,我如何更改 FLTK Fl_Window 的标题在初始化它?有什么其他方法可以摆脱这种混乱吗?
【问题讨论】:
【参考方案1】:如何在构造函数中初始化基类?
你可能不会。
实例的基础部分必须在实例的派生部分或其任何成员之前初始化。
如何在初始化后更改 FLTK Fl_Window 的标题?
The documentation说你可以打电话:
label("my caption")
这有什么问题?
还有什么办法可以摆脱这种混乱吗?
没有。
另外,您应该升级到 FLTK 2。
【讨论】:
(+1) 谢谢。这些天你帮了我很多,你也回答了我最近提出的 3 到 4 个问题,再次感谢。 不幸的是,FLTK 2 是一个死分支。开发人员现在专注于 FLTK 3。所以我建议他使用 FLTK 1.3 或 FLTK 3。FLTK 2 仍然(恕我直言)领先于两者,但逐渐将 FLTK 2 中的所有好东西移植到 FLTK 3。 @Mr.Anubis:一个是新的。另一个不是。以上是关于除了构造函数参数之外,我可以更改 FL_Window 的标题吗?的主要内容,如果未能解决你的问题,请参考以下文章
使用 C/C++ 中的派生类成员变量将参数传递给 Base 构造函数
用于 ASP.NET MVC 的没有 DI 容器的控制器的构造函数参数