gtk - 获取 gtkada (GTK3) 中小部件的当前/默认字体

标签 gtk ada

已创建一个显示 Text_View 的程序。我设置了按钮来允许用户更改配色方案和字体。效果很好。

但是当程序第一次启动时,它使用当前 GTK3 主题设置的任何字体。

我想要做的是找出当前字体是什么(在用户选择系列、粗细或大小的更改之前),获取字体大小,对其应用缩放因子,以应用于我将几行介绍性文本输出到 Text_View。

我尝试在这里查看较旧的答案,但他们似乎使用了已弃用的选项(GTK2),这些选项似乎不可用。

预先感谢您的帮助。

最佳答案

不是 GtkAda 方面的专家,但可以给您一些指导(链接到 GtkAda 源代码):

在 GTK+ 3 中,您可以使用 Get_Style_Context 查询小部件的样式。 。这会返回一个 Gtk_Style_Context,它基本上是一个类似 CSS 属性的容器。

您正在寻找font property font-size ,您可以使用 Get_Property 进行查询.

查询后,您创建了一个 Gtk_Text_Tag 。最方便的方法是通过 Get_Buffer 查询 View 的缓冲区。然后使用 Create_Tag .

您需要设置Size_PropertySize_Points_Property根据您查询的值(添加所需的附加尺寸)。我不确定返回的大小是否以 Pango 单位或点为单位,您需要弄清楚这一点。不管怎样,您必须设置 Size_Set_Property

最后,你调用Apply_Tag在 View 的缓冲区上将标记应用到给定范围内的文本。

关于gtk - 获取 gtkada (GTK3) 中小部件的当前/默认字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54508612/

相关文章:

c - C中的空结构

c - 保持用户环境变量执行 gksu

gtk - 以G_和GTK_开头的函数有什么区别?

c - GTK : Visual Studio Issue

overflow - Ada:整数溢出

data-structures - Ada- 'at' 和 'range' 是什么意思/做什么?

python - PyGTK/Gobject 等待挂起的任务

Linux - 创建一个甚至在全屏应用程序上显示的菜单

ada - 跟踪 Ada 程序的执行

Ada 语句 'accept start do ' 中的任务未完成全部执行?