首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用UIScale API获取系统gtk3因子

使用UIScale API获取系统gtk3因子
EN

Stack Overflow用户
提问于 2021-01-28 10:10:18
回答 1查看 514关注 0票数 2

我正在开发一个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。

EN

回答 1

Stack Overflow用户

发布于 2021-01-31 23:32:51

如果您要查找的是DPI比例(通常由GDK_DPI_SCALE环境变量设置),我将使用一个变体--以下代码片段:

代码语言:javascript
复制
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;
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65934974

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档