wxWidgets - wxFilePickerCtrl抛出GLib-CRITICAL错误

时间:2018-02-09 06:45:17

标签: c++ linux wxwidgets

我有一个使用文件选择控件初始化的简单面板

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

1 个答案:

答案 0 :(得分:0)

如果无法重现它,很难知道它来自何处。像往常一样,请尝试在gdb下运行您的应用程序并在g_log上放置断点(有关详细信息,请参阅this answer),这应该给您(和我们)至少一些关于它来自何处的想法。