Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更改GtkBuilder生成的菜单栏中的GtkMenuItem标签_Gtk_Gtk3_Gtkbuilder - Fatal编程技术网

更改GtkBuilder生成的菜单栏中的GtkMenuItem标签

更改GtkBuilder生成的菜单栏中的GtkMenuItem标签,gtk,gtk3,gtkbuilder,Gtk,Gtk3,Gtkbuilder,我使用以下XML代码通过GtkBuilder生成GtkMenuBar: <?xml version="1.0"?> <interface> <menu id="menubar"> <submenu id="submenu"> <attribute name="label">test</attribute> <section> <item>

我使用以下XML代码通过GtkBuilder生成GtkMenuBar:

<?xml version="1.0"?>
<interface>
  <menu id="menubar">
    <submenu id="submenu">
      <attribute name="label">test</attribute>
      <section>
        <item>
          <attribute name="label">random item</attribute>
        </item>
      </section>
    </submenu>
  </menu>
</interface>

但是,我需要在运行时更改此菜单项的标签,并希望以上述方式进行更改。这是一个简单的菜单栏,有一个菜单项(_文件),一个子菜单有3个菜单项(2x ImageMenuItem和一个SeparatorMenuItem)。以下是使用Glade 3.19(Fedora 23)完成的,在解析您的文件后,Glade抱怨它是Gtk+2.12的目标,即使该文件上没有版本参考。正如您所看到的,语法不同

<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.19.0 -->
<interface>
  <requires lib="gtk+" version="3.16"/>
  <object class="GtkMenuBar" id="menubar1">
    <property name="visible">True</property>
    <property name="can_focus">False</property>
    <child>
      <object class="GtkMenuItem" id="menuitem1">
        <property name="visible">True</property>
        <property name="can_focus">False</property>
        <property name="label" translatable="yes">_File</property>
        <property name="use_underline">True</property>
        <child type="submenu">
          <object class="GtkMenu" id="menu1">
            <property name="visible">True</property>
            <property name="can_focus">False</property>
            <child>
              <object class="GtkImageMenuItem" id="imagemenuitem1">
                <property name="label">gtk-new</property>
                <property name="visible">True</property>
                <property name="can_focus">False</property>
                <property name="use_underline">True</property>
                <property name="use_stock">True</property>
              </object>
            </child>
            <child>
              <object class="GtkSeparatorMenuItem" id="separatormenuitem1">
                <property name="visible">True</property>
                <property name="can_focus">False</property>
              </object>
            </child>
            <child>
              <object class="GtkImageMenuItem" id="imagemenuitem2">
                <property name="label">gtk-quit</property>
                <property name="visible">True</property>
                <property name="can_focus">False</property>
                <property name="use_underline">True</property>
                <property name="use_stock">True</property>
              </object>
            </child>
          </object>
        </child>
      </object>
    </child>
  </object>
</interface>

真的
假的
真的
假的
_文件
真的
真的
假的
gtk新
真的
假的
真的
真的
真的
假的
gtk退出
真的
假的
真的
真的

你能告诉我更多关于你的设置和依赖关系吗?无论如何,建议升级到Gtk+3

这是一个简单的菜单栏,有一个菜单项(_文件),一个子菜单有3个菜单项(2x ImageMenuItem和一个SeparatorMenuItem)。以下是使用Glade 3.19(Fedora 23)完成的,在解析您的文件后,Glade抱怨它是Gtk+2.12的目标,即使该文件上没有版本参考。正如您所看到的,语法不同

<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.19.0 -->
<interface>
  <requires lib="gtk+" version="3.16"/>
  <object class="GtkMenuBar" id="menubar1">
    <property name="visible">True</property>
    <property name="can_focus">False</property>
    <child>
      <object class="GtkMenuItem" id="menuitem1">
        <property name="visible">True</property>
        <property name="can_focus">False</property>
        <property name="label" translatable="yes">_File</property>
        <property name="use_underline">True</property>
        <child type="submenu">
          <object class="GtkMenu" id="menu1">
            <property name="visible">True</property>
            <property name="can_focus">False</property>
            <child>
              <object class="GtkImageMenuItem" id="imagemenuitem1">
                <property name="label">gtk-new</property>
                <property name="visible">True</property>
                <property name="can_focus">False</property>
                <property name="use_underline">True</property>
                <property name="use_stock">True</property>
              </object>
            </child>
            <child>
              <object class="GtkSeparatorMenuItem" id="separatormenuitem1">
                <property name="visible">True</property>
                <property name="can_focus">False</property>
              </object>
            </child>
            <child>
              <object class="GtkImageMenuItem" id="imagemenuitem2">
                <property name="label">gtk-quit</property>
                <property name="visible">True</property>
                <property name="can_focus">False</property>
                <property name="use_underline">True</property>
                <property name="use_stock">True</property>
              </object>
            </child>
          </object>
        </child>
      </object>
    </child>
  </object>
</interface>

真的
假的
真的
假的
_文件
真的
真的
假的
gtk新
真的
假的
真的
真的
真的
假的
gtk退出
真的
假的
真的
真的

你能告诉我更多关于你的设置和依赖关系吗?无论如何,建议升级到Gtk+3

您是使用Glade还是手工编写XML?您是使用Glade还是手工编写XML?