如何在 wxWIdget 中显示清晰的图标



我正在使用wxWidgets显示我的应用程序的icon。我使用以下代码并使用具有128*128维度的.ico file。但是显示的图标不清晰。我应该如何使其锋利? 我使用以下代码:

bool ImageFileToIcon(wxString &path, wxIcon &icon)
{
wxImage image;
if (!image.LoadFile(path))
{
wxLogError(wxT("Couldn't load image from '%s'."), path.c_str());
return false;
}
icon.CopyFromBitmap(image);
return true;
}
someFunction()
{
wxIcon tempIcon;
ImageFileToIcon(IconImagePath, tempIcon);
SetIcon(tempIcon);
}

我该怎么办,我应该使用维度较小的.ico文件还是需要更改代码?有没有像.ico文件包含所有尺寸,我们必须根据屏幕分辨率进行调整。如何在wxWidgets中做到这一点?

Windows下的wxIcon很特别,因为它可以包含不同分辨率的同一图片的多个表示形式,而wxImage只包含一个图像。因此,当您将.ico文件加载到wxImage时,除了一个图标外,您会丢失所有图标。

相反,您应该改用专用的 wxIconBundle 类。它还会使您的代码更简单,基本上您可以

SetIcons(wxIconBundle(IconImagePath));

来自 VZ 的答案已过时,因为 API 在版本 3.1.3 中发生了更改。 现在,您将像这样做一个图像图标:

wxInitAllImageHandlers(); // Init Image Handlers first
SetIcons(wxIconBundle("your/path/to/your/logo/or/image")); // watch out for the s in the function call SetIcons(), not SetIcon() anymore

相关内容

  • 没有找到相关文章

最新更新