Gtk Glade treeview列表存储数据不可见,可以';我想不出为什么

Gtk Glade treeview列表存储数据不可见,可以';我想不出为什么,gtk,glade,gtkmm,gtktreeview,Gtk,Glade,Gtkmm,Gtktreeview,我有99%44/100的东西在工作。我有一个glade文件,我使用gtkbuilder渲染它,然后它出现了。除了我的treeview列表存储中的数据之外的所有内容。 我注意到默认情况下树视图不可见,将其设置为true会在树视图区域中显示一个框,但我无法在树视图中显示任何liststore项。 我在glade中定义的列表存储中有一些默认数据,我还以编程方式添加了一些,但没有显示任何内容。是否缺少一些可见的开/关选项?要在Glade中的树视图中添加单元渲染器,请右键单击树视图并选择“编辑”。这将打开

我有99%44/100的东西在工作。我有一个glade文件,我使用gtkbuilder渲染它,然后它出现了。除了我的treeview列表存储中的数据之外的所有内容。 我注意到默认情况下树视图不可见,将其设置为true会在树视图区域中显示一个框,但我无法在树视图中显示任何liststore项。
我在glade中定义的列表存储中有一些默认数据,我还以编程方式添加了一些,但没有显示任何内容。是否缺少一些可见的开/关选项?

要在Glade中的树视图中添加单元渲染器,请右键单击树视图并选择“编辑”。这将打开树视图编辑器。如果单击“层次结构”选项卡,则可以添加或删除列。添加一列,然后右键单击该列,以获得可以添加的单元渲染器菜单。这应该可以解决问题。

为了补充托马托所说的,我想我应该为我所拥有的东西加入xml:

<object class="GtkTreeView" id="portfolio_treeview">
    <property name="visible">True</property>
    <property name="can_focus">True</property>
    <property name="model">portfolio_liststore</property>
    <property name="search_column">0</property>
    <child>
      <object class="GtkTreeViewColumn" id="treeviewcolumn4">
        <property name="title">ID</property>
        <property name="clickable">True</property>
        <property name="sort_indicator">True</property>
        <property name="sort_column_id">0</property>
        <child>
          <object class="GtkCellRendererText" id="cellrenderertext4"/>
          <attributes>
            <attribute name="text">0</attribute>
          </attributes>
        </child>
      </object>
    </child>
</object>

真的
真的
公文包商店
0
身份证件
真的
真的
0
0

我想出来了。。。要使用glade添加“'text'属性”,以便可以查看位于liststore中的数据

1) 右键单击树视图并选择“编辑”

2) 单击“层次”选项卡

3) 右键单击添加的列并选择“添加子文本”


4) 在窗口右侧的“Text:”旁边,将unset更改为liststore/column文本类型。

我可以看出gtkbuilder没有为我的列(定义为gchararray)提供cellrenderer因为当我调用get_column_cell_renderer时,我得到了NULL。那么我如何在gtkbuilder创建的列中设置单元格渲染器呢?天哪,它真的不必这么复杂。我猜我做了一个糟糕的假设,即树的定义将由模型定义。我没有意识到您必须定义模型并在树控件中指定列。加夫。非常感谢。我仍然没有得到文本,但至少我得到了列标题并可以添加行。如果能正常工作,只需指定单元格渲染器的文本以引用我的liststore列数据。在javascript中,可以使用var n=document.createElement('option')似乎是错误的;n、 text=sel.text;n、 值=选择值;document.getElementById(“列表框”).options.add(n);这是因为在GTK+中视图和模型是分开的。您可以在同一数据上有多个视图,并在每个视图中显示一组不同的列。在当前版本的Glade中,“编辑”现在位于工具栏上,而不是右键单击菜单上。我还不知道如何/在何处设置“文本”属性;尽管编辑文件以添加属性有效!glade编辑器似乎没有自动添加属性,这可能导致原始问题。将cellrenderer的文本字段设置为要使用的存储列的索引可以解决此问题。否则渲染器不会查找值。