Данные хранилища списка Glade treeview не видны, не могу понять, почему

У меня 99% 44/100 все работает. У меня есть файл Glade, я использую gtkbuilder для его рендеринга, и вуаля, он появляется. Все, кроме данных в моем древовидном списке. Я заметил, что по умолчанию древовидное представление не отображается, и если установить для него значение true, в области древовидного представления появится поле, но я не могу отобразить какие-либо элементы списка в древовидном представлении. У меня есть некоторые данные по умолчанию в хранилище списков, определенные в Glade, и я тоже добавляю их программно, но ничего не отображается. Есть ли какая-то видимая опция включения / выключения, которую мне не хватает?


person stu    schedule 29.11.2010    source источник
comment
Насколько я могу судить, gtkbuilder не предлагает сотовый рендерер для моего столбца (который определен как gchararray), потому что, когда я вызываю get_column_cell_renderer, я возвращаю NULL.   -  person stu    schedule 30.11.2010
comment
Итак, как мне установить средство визуализации ячеек в столбце, созданном gtkbuilder?   -  person stu    schedule 30.11.2010


Ответы (3)


Чтобы добавить средство визуализации ячеек в древовидное представление в Glade, щелкните правой кнопкой мыши древовидное представление и выберите «Редактировать». Это вызывает редактор древовидного представления. Если вы нажмете на вкладку «Иерархия», вы сможете добавить или удалить столбцы. Добавьте столбец, а затем щелкните его правой кнопкой мыши, чтобы открыть меню визуализаторов ячеек, которые вы можете добавить. Это должно сработать.

person ptomato    schedule 30.11.2010
comment
Господи, это действительно не должно быть таким сложным. Думаю, я сделал неверное предположение, что определение дерева будет определяться моделью. Я не понимал, что вам нужно определить модель И указать столбцы в элементе управления деревом. Гарг. Большое спасибо. Я все еще не получаю текст, но, по крайней мере, я получаю заголовок столбца и могу добавлять строки. - person stu; 30.11.2010
comment
Все заработало, просто нужно было указать текст средства визуализации ячеек, чтобы ссылаться на данные столбца моего списка. - person stu; 30.11.2010
comment
Просто кажется неправильным, что в javascript вы можете var n = document.createElement('option'); п.текст = сел.текст; n.значение = выбранное.значение; document.getElementById(listbox).options.add(n); и это работает. - person stu; 30.11.2010
comment
Это потому, что представление и модель в GTK+ разделены. У вас может быть несколько представлений одних и тех же данных и отображение разных наборов столбцов в каждом из них. - person Bernd Jendrissek; 24.04.2013
comment
В текущих версиях Glade пункт «Правка» теперь находится на панели инструментов, а не в контекстном меню. - person kolen; 05.12.2018

Просто чтобы добавить к тому, что сказал ptomato, я подумал, что добавлю 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>
person Victor Parmar    schedule 30.11.2010
comment
Я еще не понял, как/где установить атрибут «текст»; Хотя редактирование файла для добавления атрибута работает! - person ThorSummoner; 23.02.2015
comment
Редактор поляны, похоже, не добавляет атрибуты автоматически, что может привести к исходной проблеме. Установка текстового поля для рендерера ячеек на индекс столбца хранилища, который нужно использовать, решает проблему. В противном случае рендерер не ищет значения. - person AbstractDissonance; 16.08.2017

Я понял это... чтобы добавить "текстовый атрибут" с помощью поляны, чтобы вы могли просматривать свои данные, расположенные в списке....

1) Щелкните правой кнопкой мыши свое дерево и выберите «Изменить».

2) Нажмите на вкладку "Иерархия"

3) Щелкните правой кнопкой мыши добавленный столбец и выберите «Добавить дочерний текст».

4) В правой части окна рядом с «Текст:» измените unset на тип текста liststore/column.

person misanthropy    schedule 23.03.2017