添加我自己的图标wxAuiToolBar
我想添加一个按钮到wxAuiToolBar
,显示我自己创建的图标(我把它作为文件myicon.png
与分辨率24x24)。添加我自己的图标wxAuiToolBar
我manged到目前为止是转换为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,然后我得到一个运行时错误:“../src/gtk/bitmap.cpp(626):断言”image.IsOk()“在wxBitmap()失败, :无效的图片”
目前,我想要得到它与WxSmith的工作,但如果证明不是有可能我也很高兴,如果有人能帮助我得到它的工作没有。
为了在运行时,你需要注册PNG图像处理器可与wxInitAllImageHandlers()完成加载PNG文件。而且您应该实际检查位图创建是否成功,因为始终可能找不到或损坏文件。
或者,您也可以在程序中直接嵌入PNG,然后使用便捷wxBITMAP_PNG() macro加载它。在这种情况下,您通常可以省略错误处理。
而得到它的同WxSmith工作,我改变了''
如果你有auidemo样品试试这一点? – Igor