向 wxWidgets 添加工具栏会产生奇怪的结果

Adding a toolbar to wxWidgets is generating a strange result

我正在尝试完成一项非常简单的任务,即向应用添加工具栏。我尝试了我能想出的最简单的方法,但结果有点奇怪,我想知道这是否应该以这种方式表现,或者我是否遗漏了什么。

代码在下面,注意我什至尝试使用原生图像(注释),但结果是一样的。

#include <wx/wx.h>
#include <wx/image.h>
// #include <wx/artprov.h>

class MyApp: public wxApp
{
public:
    virtual bool OnInit();
};

class MyFrame: public wxFrame
{
public:
    MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size);
};

wxIMPLEMENT_APP(MyApp);


bool MyApp::OnInit()
{
    MyFrame *frame = new MyFrame("Simple test", wxPoint(50, 50), wxSize(450, 340) );
    frame->Show( true );
    return true;
}

MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
        : wxFrame(NULL, wxID_ANY, title, pos, size)
{
    // wxToolBar *toolbar = CreateToolBar();
    // toolbar->AddTool(1001, _("New"), wxArtProvider::GetBitmap("wxART_NEW"));
    // toolbar->Realize();
    CreateStatusBar();
    SetStatusText(wxT("Start"));

    wxInitAllImageHandlers();
    wxImage image(wxT("save.png"), wxBITMAP_TYPE_PNG);
    if (image.Ok())
    {
        wxToolBar *toolbar = CreateToolBar();
        toolbar->AddTool(1001, _("New"), image);
        toolbar->Realize();
    }
    else
    {
         SetStatusText(wxT("image not ok"));   
    }
}

结果在这里,注意图标在应用栏中,而不是在单独的工具栏中。

这就是工具栏在最近的 macOS 版本中的工作方式,wxWidgets 完全是关于使用本机 UI,所以这绝对是一个功能而不是错误,因为本机应用程序看起来也是这样 - - 例如,看看 Finder。