我正在使用wxCreatePersistentObject在内存中保存标签,但是我遇到了一些问题。
使用http://docs.wxwidgets.org/trunk/overview_persistence.html#persistence_defining 我将一步一步地创建这个持久化类。我想保存tabpanel,它继承自auiNotebook。
$(".comment").html(html);
这是我的定义:
class myPersistentClass : public wxPersistentObject{
public:
myPersistentClass(TabPanel *panel);
wxString GetKind() const;
wxString GetName() const;
void Save() const;
bool Restore();
TabPanel * panel_;
wxPersistentObject * wxCreatePersistentObject (PropertyTabPanel *panel);
};
它为构造函数提供了编译器错误。我不确定我做错了什么。如果有人能告诉我我是否正在创建这个wxPersistentObject
答案 0 :(得分:0)
目前还不清楚你在这里尝试做什么。持久对象在它们被销毁时将其状态保存在持久存储中(例如在磁盘上),并在它们再次创建时将其恢复。一个典型的例子是一个顶层窗口,记住它在程序运行之间的大小和位置,或记住它最后选择的页面的笔记本。因此,如果您想以这种方式保存TabPanel
州,则应定义PersistentTabPanel
,但除非TabPanel
不是从wxWindow
派生,否则您应该继承它来自wxPersistentWindow<TabPanel>
而不是wxPersistentObject
本身。
至于ctor中的错误,在ctor初始化列表中调用wxCreatePersistentObject()
只是从C ++的角度来看没有任何意义,你使用初始化列表来初始化基类和成员,当然,这个功能都不是。作为链接到州的文档,您需要定义此函数,并使用TabPanel*
。