1

gtktreeview の葉のフォントを変更するにはどうすればよいですか? 特定の葉のフォントを太字に設定したい

4

3 に答える 3

1

私はpythonを使用していますが、これを行う方法は同じでなければならず、構文を適応させるだけです。

GTK では、PANGO を使用してフォントを変更します。ここにツリービューがあります:

import pango, GTK
....
cols = ['Date', 'Index', 'Program', 'Comments', 'Name']
self.treeView.cell = [None] * len(cols)
....
fontT = pango.FontDescription("serif light Oblique 8")
fontO = pango.FontDescription("serif bold 8")
treeView.cell[2].set_property('font-desc', fontT)
treeView.cell[3].set_property('font-desc', fontO)

これにより、列 2 (「プログラム」) と列 3 (「コメント」) が異なるフォントになります。列 3 は太字です。

これがお役に立てば幸いです。


編集 :

Cリンクが見つかりました:

http://www.ibm.com/developerworks/library/lu-pango2/

于 2011-09-13T08:57:15.337 に答える
0

Pango Markupを使用できます。次に必要なものは次のとおりです。

  1. モデル内で Pango Markup Language を使用します (ここでは を使用GtkListStore):
GtkListStore *listStore = gtk_list_store_new(1, G_TYPE_STRING);
GtkTreeIter rowIter;
gtk_list_store_append(listStore, &rowIter);
gtk_list_store_set(listStore, &rowIter,
    LIST_COL_NAME, "<span foreground='blue'>Blue Title</span>"\
    " usual content", -1);

その後、 の列を作成するときに、 の代わりに次TreeViewを指定する必要があります。markuptext

#define LIST_COL_INDEX_NAME 0 // column index

// ...

GtkTreeViewColumn * col = gtk_tree_view_column_new_with_attributes (
         "Column title", renderer,
         "markup", // <--- This is important!
         LIST_COL_INDEX_NAME, NULL);
gtk_tree_view_append_column (treeview, col);

参考文献

于 2020-10-25T10:42:53.070 に答える
0

次のように、列のデータ関数を設定する必要があります。

gtk_tree_view_column_set_cell_data_func(column, renderer, data_func, NULL, NULL);

データ関数は次のようになります。

void data_func (GtkTreeViewColumn *col,
                GtkCellRenderer   *renderer,
                GtkTreeModel      *model,
                GtkTreeIter       *iter,
                gpointer           user_data)
{
  gboolean active;
  gtk_tree_model_get(model, iter, CHECKED_COLUMN, &active, -1);

  g_debug("xxxxx %u", active);
  if (active)
  {
    g_object_set(renderer, "weight", PANGO_WEIGHT_BOLD, NULL);
  }
  else
  {
    g_object_set(renderer, "weight", PANGO_WEIGHT_NORMAL, NULL);
  }
}
于 2011-09-15T11:59:07.503 に答える