我有一个使用文件选择控件初始化的简单面板
wxBoxSizer* top_sizer;
top_sizer = new wxBoxSizer( wxHORIZONTAL );
m_BlenderFile = new wxStaticText( this, wxID_ANY, wxT("Blend File"), wxDefaultPosition, wxDefaultSize, 0 );
m_BlenderFile->Wrap( -1 );
top_sizer->Add( m_BlenderFile, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
m_fileBlend = new wxFilePickerCtrl(
this, wxID_ANY, wxEmptyString, wxT("Select a blender file"), wxT("*.blend"),
wxDefaultPosition, wxDefaultSize, wxFLP_DEFAULT_STYLE );
top_sizer->Add( m_fileBlend, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
m_mainSizer->Add( top_sizer, 1, wxEXPAND, 5 );
在我初始化FilePickerCtrl
的行中,我在控制台中获得以下输出:
(bhelper:16553): GLib-CRITICAL **: g_byte_array_remove_range:
assertion 'index_ + length <= array->len' failed
(bhelper:16553): GLib-CRITICAL **: g_byte_array_remove_range:
assertion 'index_ + length <= array->len' failed
(bhelper:16553): GLib-CRITICAL **: g_byte_array_remove_range:
assertion 'index_ + length <= array->len' failed
不幸的是,带有文件选择器的面板是由用户动态创建的,因此可能有10个,每次创建一个,弹出上面的三个错误行。
我在这里缺少什么?
PS:我在Linux机器上使用 wxWidgets 3.0.3
答案 0 :(得分:0)
如果无法重现它,很难知道它来自何处。像往常一样,请尝试在gdb下运行您的应用程序并在g_log
上放置断点(有关详细信息,请参阅this answer),这应该给您(和我们)至少一些关于它来自何处的想法。