为wxAuiToolBar添加我自己的图标

时间:2017-05-11 10:26:48

标签: c++ wxwidgets

我想在wxAuiToolBar添加一个按钮,显示我自己创建的图标(我将其作为文件myicon.png,分辨率为24x24)。

我到目前为止最好的是转换为bmp文件并使用以下代码为wxsmith:

<wxsmith>
    <object class="wxFrame" name="MyFrame">
        <size>800,640</size>
        <object class="wxAuiManager" variable="aui_manager" member="yes">
            <object class="AuiManagerItem">
                <object class="wxAuiToolBar" name="ID_AUITOOLBAR" variable="toolbar" member="yes">
                    <pos>90,3</pos>
                    <object class="AuiToolBarItem">
                        <object class="wxAuiToolBarItem" name="ID_AUITOOLBARMEASURE" variable="AuiToolBarMeasure" member="yes">
                            <bitmap>/home/username/project/icon.bmp</bitmap>
                            <handler function="OnTest" entry="EVT_TOOL" />
                        </object>
                        <label>Test</label>
                    </object>
                </object>
            </object>
        </object>
    </object>
</wxsmith>

导致以下源代码:

toolbar->AddTool(ID_AUITOOLBAR1, _("Test"),
    wxBitmap(wxImage(_T("/home/username/project/icon.bmp"))), wxNullBitmap, wxITEM_NORMAL, wxEmptyString, wxEmptyString, NULL);

然而,透明度信息会丢失。

如果我使用png文件或转换为xpm,那么我会收到运行时错误:&#34; ../ src / gtk / bitmap.cpp(626):assert&#34; image.IsOk()& #34; wxBitmap()失败:图像无效&#34;

目前我正试图让它与WxSmith一起工作,但如果事实证明不可能,那么如果有人能帮助我让它在没有工作的情况下我也会感到高兴。

0 个答案:

没有答案