【问题标题】:Adding a toolbar to wxWidgets is generating a strange result向 wxWidgets 添加工具栏会产生奇怪的结果
【发布时间】:2022-01-08 09:44:46
【问题描述】:

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

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

#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"));   
    }
}

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

【问题讨论】:

  • wx 版本? OSX 版本? toolbar 示例适合您吗?
  • wxVersion 是 3.1.5 macOs Monterrey 12.0.1 (21A559) 我还没有测试这个例子

标签: c++ wxwidgets


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-04
    • 2013-03-15
    • 1970-01-01
    • 2013-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多