使用vala设置gtk属性

时间:2016-11-14 19:28:03

标签: gtk vala

我正在尝试在vala中创建我的第一个应用程序。我用一个标题栏在林间空地做了一个ui,现在我想让标题栏显示窗口控件。我搜索了如何使用vala设置gtk属性,但无法找到答案。我可以找到我需要设置的属性,但不能找到如何在vala中设置它。我现在在vala中的主要应用程序的当前代码是:

using Gtk;

public static int main(string[] args){
    Gtk.init (ref args);
    try{
        var builder = new Builder();
        builder.add_from_file ("Headerbar.ui");
        builder.connect_signals (null);
        var window = builder.get_object ("main_window") as Window;
        var headerbar = builder.get_object ("headerbar") as Gtk.HeaderBar;
        headerbar.set_show_close_button(true);
        window.show_all ();
        Gtk.main ();
    } catch (Error e){
        stderr.printf ("Kon ui niet laden: %s\n", e.message);
        return 1;
    }

    return 0;
}

我的ui文件的代码是:

<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.20.0 -->
<interface>
  <requires lib="gtk+" version="3.20"/>
  <object class="GtkApplicationWindow" id="main_window">
    <property name="can_focus">False</property>
    <child>
      <object class="GtkLabel" id="label">
        <property name="visible">True</property>
        <property name="can_focus">False</property>
      </object>
    </child>
    <child type="titlebar">
          <object class="GtkHeaderBar">
            <property name="visible">True</property>
            <property name="can_focus">False</property>
            <child>
              <object class="GtkButton" id="sayhello">
            <property name="label" translatable="yes">Say hello!    </property>
        <property name="visible">True</property>
        <property name="can_focus">True</property>
        <property name="receives_default">True</property>
          </object>
        </child>
      </object>
</child>

当我编译代码时,它不会给出任何错误。但是当我运行应用程序时,窗口控件没有显示在标题栏中,我在终端中收到以下错误: (主要:15420):Gtk-CRITICAL **:gtk_header_bar_set_show_close_button:断言&#39; GTK_IS_HEADER_BAR(bar)&#39;失败。 如何正确设置属性,以便标题栏显示窗口控件。

0 个答案:

没有答案