[Gtk-sharp-list] progressbar on a treeview
Andrey Gankov
gankov.andrey at inbox.ru
Fri Dec 18 10:03:01 UTC 2015
Второй способ.
Он выгоднее если у тебя в колонке 2, где тип object лежит какой то класс
который может сообщить по прогресс. Или ты хочешь что то считать на лету,
например вычислять прогресс.
//Колонку можно созать одной строкой
treeview1.AppendColumn ("Статус", new Gtk.CellRendererProgress (),
StatusCellDataFuc);
//Собственно сама функция
private void StatusCellDataFuc (Gtk.TreeViewColumn column, Gtk.CellRenderer
cell, Gtk.TreeModel model, Gtk.TreeIter iter)
{
//Можно взять какие то данные из модели(ListStore)
int curentPosition = (int) model.GetValue (iter, ??);
//И задать их рендеру. Нужно учитывать что это функция будет
вызывать всякий раз когда treeview захочет перерисовать ячеку. Ты можешь
установить натройки рендера.
int pencent = (curentPosition / total) * 100;
(cell as Gtk.CellRendererProgress).Value = pencent;
(cell as Gtk.CellRendererProgress).Text =
String.Format("{0}%", percent);
}
Тут только при работе из другого потока нужно будет как то затавлять
treeview перерисовывать данные. Если в ListStroe будет что то менятся то
данные пререрисуются. Если меняться будет только в о вложенном в листор
объекте то treeview может не перерисовать.
То есть еще раз хочу что бы ты понял колонки в treeView с колонками, в
данных ListStore, могут быть никак не связаны. Этом примере они связаны
только через функцию StatusCellDataFuc, она знает в какую колонку ListStore
лезть, может брать данные из нескольких для формирования одной ячейки. Может
вообще ничего не брать.
А в первом примере мы через аттрибуты задавали, cell рендеру, куда лездть в
модель что бы получить свойстов text, куда лезть что бы получить value и так
далее.
Можешь посмотреть как например вот тут в рабочей программе. Устанавливаестя
цвет текста ячейки
https://github.com/QualitySolution/Bazar/blob/master/newaprashka/MainWinAccrual.cs#L329
Просто исходя из значения, числа.
--
View this message in context: http://mono.1490590.n4.nabble.com/progressbar-on-a-treeview-tp4667178p4667185.html
Sent from the Mono - Gtk# mailing list archive at Nabble.com.
More information about the Gtk-sharp-list
mailing list