Жирный / Unbold строки в PyGTK TreeView - PullRequest
5 голосов
/ 13 декабря 2011

Я хочу, чтобы некоторые строки в TreeView были выделены жирным шрифтом, а некоторые - нет, когда я добавляю их в TreeView, позже я хочу отменить выделение строк при клике.

Какой самый простой способ сделать это?

1 Ответ

7 голосов
/ 13 декабря 2011

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

Если вы добавляете новыйВ столбце этой модели вы можете использовать его для установки веса шрифта, используемого в каждом устройстве визуализации ячеек.Для этого просто установите для свойства gtk.CellRendererText widget weight новый индекс столбца в модели, а для weight-set - True.

После этого вам просто нужно установить вес шрифта вМодель, использующая любую из pango.WEIGHT констант, таких как pango.WEIGHT_NORMAL и pango.WEIGHT_BOLD.

В качестве примера, предположим, что это столбцы вашей модели (один для текста, другой для веса шрифта):

Model columns

, и вот несколько строк, которые вы добавили для тестирования:

Model rows

(обратите внимание, что pango.WEIGHT_NORMAL=400 и pango.WEIGHT_BOLD=700)

В этой модели вы создаете gtk.TreeView со столбцом и средством визуализации текста:

Treeview hierarchy

В выбранном вами устройстве визуализациисвойство text для столбца text в модели:

Cell renderer text

и свойство weight для столбца weight в модели:

Cell renderer weight

Результат, который вы получите с тестовыми данными, которые вы добавили в свою модель:

Final result

Где вы можете видеть, что текстотображается со шрифтомВес, установленный в модели.

...