【问题标题】:Change font face/size of the top GTKWindow?更改顶部 GTKWindow 的字体/大小?
【发布时间】:2019-08-14 02:42:05
【问题描述】:

我正在尝试使用 .NET Core GTK。对于 WinForms,我们可以选择表单,然后单击 Font 属性以在表单设计器中更改字体或大小。如果我们改变顶部窗体的字体,它会应用到窗体上的所有子控件。

我想在 Glade 中做类似的事情,但我在任何属性选项卡中都找不到“字体”GUI。

  1. GTK# 可以做到这一点吗?
  2. 如果可以,可以在 Glade 内完成吗?
  3. 如果2的答案是否定的,可以在代码中做吗?

【问题讨论】:

    标签: gtk3 glade


    【解决方案1】:

    是的,这在 GTK 和 Glade 中都是可能的,尽管需要一些代码来更改所有表单的字体。

    在 GTK 中,您将使用 GtkFontChooserWidget。这应该让您在字体之间进行选择。

    在 Glade 中,当您使用属性选项卡时,您可以使用 Scale 属性更改字体大小。我还没有弄清楚如何通过这些属性更改实际字体。值得庆幸的是,有一个解决方法。不要使用属性,而是使用标记。标记适用于字体大小和字体样式。

    Markup Example

    <span font='36' face='Georgia'>Markup</span>
    

    假设您使用 GtkComboBoxText 列出可能的字体和选择按钮,您只需要一个处理程序来遍历每个标签并将字体更改为指定的字体。

    def when_visible(window):
    """
    This is where per-window initialization takes place.
    Values to be displayed are populated into their widgets.
    """
    global FONT_FACE
    name = Gtk.Buildable.get_name(window) # Window currently on
    
    if 'font_select_screen' = name:
        font = BUILDER.get_object('fontEntryCombo')
        FONT_FACE = font.get_active_text()
    elif 'random_screen' = name:
        label1_text = "<span font='36' face='{}'>Label</span>".format(FONT_FACE)
        label1 = BUILDER.get_object('label1')
        label1.set_markup(label1_text)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-29
      • 2013-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-04
      • 2011-01-17
      • 2013-10-05
      相关资源
      最近更新 更多