gtk#, TreeView, CellRendererSpin: кнопки прокрутки не отображаются и пользовательские CellRenderers

Я пытаюсь использовать кнопку прокрутки в TreeView. Это как добавлено так:

Gtk.TreeViewColumn adjustColumn = new Gtk.TreeViewColumn();
adjustColumn.Title = "";
Gtk.CellRendererSpin adjustCell = new Gtk.CellRendererSpin();
adjustCell.Digits = 0;
adjustCell.Adjustment = new Adjustment(0, 0, 99, 1, 99, 99);
adjustCell.Editable = true;
adjustCell.Visible = true;
adjustCell.Sensitive = true;
adjustCell.Mode = CellRendererMode.Editable;
adjustColumn.PackEnd(adjustCell, true);

adjustColumn.SetCellDataFunc(adjustCell, new Gtk.TreeCellDataFunc(RenderAdjuster));
treeView.AppendColumn(adjustColumn);

А внутри функции рендеринга делается следующее:

(cell as Gtk.CellRendererSpin).Width = 30;
(cell as Gtk.CellRendererSpin).Height = 20;
(cell as Gtk.CellRendererSpin).Text = "" + (cell as Gtk.CellRendererSpin).Adjustment.Value;

Это отображает значение, но кнопки вращения не видны! Они становятся видимыми только после нажатия пользователем значения. Это абсолютно нелепо, так как пользователь не узнает, что ячейка редактируема, кроме случайного нажатия на нее, тем более что в строке есть другие значения, которые нельзя редактировать.

Итак, мой первый вопрос: как сделать так, чтобы кнопки прокрутки всегда были видны?

Можно ли это сделать с помощью пользовательского CellRenderer?

Я был бы благодарен за пример того, как создать свой собственный, действительно работающий рендерер ячейки с вращающейся кнопкой. К сожалению, пользовательские средства визуализации ячеек являются недокументированной загадкой (как и почти все в gtk#;)). И все, что вы можете найти для них, это примеры, которые рисуют каирские прямоугольники и т. Д. Сами. Должен быть более простой способ, где вы можете просто поместить любой виджет в этот рендерер, прослушивать щелчки и т. Д. И просто отображать виджет при визуализации ячейки.

Пример для пользовательского CellRenderer, который просто отображает кнопку (которая может прослушивать щелчки), также подойдет, так как я мог бы по крайней мере "подделать" SpinButton, имея три столбца с текстом: "+"-Button и ""-"- кнопка.

0 ответов

Другие вопросы по тегам