我正在开发一个SDK,它使用gtk3进行窗口和事件处理。我正在尝试使用UIScale API找到系统gtk3。在HiDPI屏幕上,这个比例可以大于1.0。我本来希望gtk_window_get_scale_factor会返回正确的缩放因子,但它总是返回1,即使我已经将标度设置为2.0。
我知道gtk有关于比例因素的知识,因为gtk本地应用程序正在适当地缩放。我已经运行了gtk3 3演示,根据系统UIScale,它正在进行适当的缩放。有人能帮我获得使用gtk3 API的缩放因子吗?
PS:刻度是使用以下步骤设置的。转到“设置->显示->缩放”,并使刻度2.0。我正在测试这个在fedora 32和Ubuntu 20.04。
发布于 2021-01-31 23:32:51
如果您要查找的是DPI比例(通常由GDK_DPI_SCALE环境变量设置),我将使用一个变体--以下代码片段:
static gdouble get_dpi_scale(GdkScreen *screen)
{
gdouble dpi = gdk_screen_get_resolution(screen);
GtkSettings *settings = gtk_settings_get_default();
gint xft_dpi = 0;
g_object_get(settings, "gtk-xft-dpi", &xft_dpi, NULL);
g_return_val_if_fail(xft_dpi > 0, 0);
return dpi / xft_dpi;
}https://stackoverflow.com/questions/65934974
复制相似问题