我正在使用GTK +编写跨平台的C ++应用程序,但是我添加到我的应用程序中的所有图像在HiDPI屏幕(在这种情况下为MacBook Pro Retina显示器)上都是模糊的。其他GTK +元素(例如按钮,文本,树视图等)以及标准的GTK图标非常清晰,并且在显示屏上看起来很棒。
一个例子是我要添加到应用程序窗口中的PNG。它是128x128px,当我将其添加到窗口时,将其缩小到64x64:
GdkPixbuf *pix_buf, *logo_buf;
GtkWidget *logo;
pix_buf = gdk_pixbuf_new_from_file("logo128.png", NULL);
logo_buf = gdk_pixbuf_scale_simple(pix_buf, 64, 64, GDK_INTERP_BILINEAR)
logo = gtk_image_new_from_pixbuf(logo_buf);
g_object_unref(pix_buf);
g_object_unref(logo_buf);
gtk_grid_attach(GTK_GRID(grid), logo, 0, 0, 1, 2);
在尝试调试时,我使用函数gdk_window_get_scale_factor (GdkWindow *window);
来检查比例因子。无论显示的内容是什么,它总是返回1,这告诉我即使其他元素很清晰,GTK也不知道比例因子是什么。
有人在这个问题上有经验吗?如何获得清晰的图像?
提前谢谢!