为wxAuiToolBar添加我自己的图标
Adding my own Icon for wxAuiToolBar
我想在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,则会出现运行时错误:"../src/gtk/bitmap.cpp(626(:断言"图像。IsOk((" 在 wxBitmap(( 中失败:图像无效">
目前,我正在尝试让它与 WxSmith 一起工作,但如果事实证明这是不可能的,如果有人可以帮助我让它在没有的情况下工作,我也很高兴。
为了在运行时加载PNG文件,您需要注册PNG图像处理程序,这可以使用wxInitAllImageHandlers((来完成。您仍然应该实际检查位图创建是否成功,因为始终有可能找不到或损坏该文件。
或者,您可以将 PNG 直接嵌入到程序中,然后使用方便的 wxBITMAP_PNG(( 宏来加载它。在这种情况下,您通常可以省略错误处理。
相关文章:
- 没有为自己的结构调用列表推回方法
- 在他自己的方法中,有可能将一个对象取消引用到另一个对象吗
- 在c++中为我自己的基于指针的数组分配内存的正确方法
- C++从对象自己的类中删除对象
- 使用 std::optional,而不是自己的结构
- 子轴围绕父轴而不是他自己的轴旋转
- 这个C++编译器优化(在自身的实例上调用对象自己的构造函数)的名称是什么,它是如何工作的?
- C++ 如何为自己的迭代器类从迭代器转换为const_iterator?
- 重载 + 自己的类和 std::string 的运算符
- 类无法访问自己的私有静态 constexpr 方法 - Clang bug?
- 是否可以在不填充自己的参数的情况下将模板函数作为参数传递?
- 如何访问模板参数自己的模板参数?
- 将矩阵乘以我自己的输入的向量
- Windows 资源管理器中的图标在使用 resource.rc 时显示 2 个不同的图标
- 您应该在什么时候创建自己的异常类型
- 派生类是从基类继承 v 指针并仅使用它,还是也有自己的 v 指针?
- string1 == string2 和你自己的 for 循环比较有什么区别?
- 如何正确包含我自己的标头?
- 自己的自定义向量类. 内存重新分配
- 为wxAuiToolBar添加我自己的图标