我最近开始使用 WxWidgets (2.9.4) 并正在学习我找到的教程,但我似乎无法加载任何图像。我已经正确使用了处理程序(用于 PNG)并且问题发生在运行时。下面是尝试运行该程序时显示的弹出窗口的图像。
代码如下:
wxPNGHandler *handler = new wxPNGHandler;
wxImage::AddHandler(handler);
wxBitmap exit;
exit.LoadFile(wxT("exit.png"), wxBITMAP_TYPE_PNG);
wxToolBar *toolbar = CreateToolBar();
toolbar->AddTool(wxID_EXIT, exit, wxT("Exit"));
toolbar->Realize();
Connect(wxID_EXIT, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(mainWindow::exitProg));
感谢任何帮助。
编辑:我忘了说当我点击取消时,会发生这种情况:
我把exit.png文件放在build目录(/Debug或/Release)和源代码目录下,但是还是没看到。
最佳答案
你的工作目录是什么?
如果您使用的是 visual studio 并使用界面(F5 或 ctrl-F5 或工具栏中的小运行按钮)运行,那么您的工作目录就是包含项目文件的文件夹。因此,请尝试将您的图像文件复制到那里。
或者打开一个命令窗口,cd 到您的构建目录之一,然后从命令行运行您的应用。
一般来说,为了避免这类问题,我改变了项目属性,使可执行文件不存储在构建文件夹之一中,而是存储在一个新文件夹中(我通常称之为“bin”——我的 unix 根目录是显示!)并更改调试属性,以便工作目录是 bin 文件夹。
这种技术有几个优点:
- 发布版和调试版都使用同一个文件夹,因此您只需要任何额外文件的一个拷贝,例如您的图像文件。
- 很容易看到工作目录中的可执行文件和额外文件,而不会被最终出现在构建文件夹中的所有 .obj 文件分散注意力
恕我直言,这非常值得在维护非默认项目属性时遇到一些额外的麻烦。
关于c++ - WxWidgets - 无法加载图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17089747/