GtkListStore - 如何居中文本?

问题描述 投票:0回答:3

我添加了一小段代码。我正在制作一个包含 5 列的树视图。我用 for 循环粘贴了最后一列,该循环生成要存储在 GtkListStore 中的数据。我可以轻松地将树视图的列居中。我在网上查找了如何将 GtkListStore 中的文本居中,但没有找到解决方案。我查看了文档:

http://developer.gnome.org/gtk3/3.4/GtkListStore.html

在最后一个链接上,我没有看到对齐属性。有没有办法通过 GtkTreeModel 对齐所有对象?我还没有找到任何使用 GtkListStore 和对齐文本的在线示例...非常感谢您的帮助!

// Append Table Velocity column
column = gtk_tree_view_column_new();
gtk_tree_view_column_set_title(column, "Pressure");
gtk_tree_view_column_set_min_width(column, 60);
gtk_tree_view_column_set_alignment(column, 0.5); // 0.0 left, 0.5 center, 1.0 right
// Code Above center's the column title in the Tree View

renderer = gtk_cell_renderer_text_new();
g_object_set( G_OBJECT( renderer ), "xalign", 0.5 );    // xalign, 0.5
// Code above doesn't change alignment..

gtk_tree_view_column_pack_start(column, renderer, FALSE);
gtk_tree_view_column_set_attributes(column, renderer, "text", 4, NULL);
gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), column);

// List Store
liststore = gtk_list_store_new(5, G_TYPE_INT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING);
gtk_tree_view_set_model(GTK_TREE_VIEW(treeview), GTK_TREE_MODEL(liststore));

int i;
for(i=1; i<=6; i++) {
// Append test data
gtk_list_store_append(liststore, &iter);
gtk_list_store_set(liststore, &iter, 0, i, 1, "5", 2, "0.2", 3, "123", 4, "0.5", -1);
// How do I center the text stored in the GtkListStore?
}

gtk_widget_show_all(window);
c gtk
3个回答
2
投票

我找到了一个名为 gtk_tree_view_column_with_attributes() 的方便函数。使用此函数和另外两行代码,我可以方便地将文本在标题和列表存储中居中。

// Append Pressure column
column = gtk_tree_view_column_new_with_attributes("Pressure", renderer, "text", 4, NULL);
gtk_tree_view_column_set_alignment(column, 0.5);
gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), column);

1
投票

尝试

g_object_set (renderer, "xalign", 0.5, NULL);
最后加上 NULL,g_object_set 需要一个哨兵。实际上省略哨兵应该至少会给您一个编译器警告,或者您是故意还是错误地省略了它?


0
投票

gtk4 帮助/更新现在可能很有用。

GtkColumnView 和 GListStore 应该用于所有遗留的东西。

在setup_cb中,添加 gtk_widget_set_halign(标签, GTK_ALIGN_START);

© www.soinside.com 2019 - 2024. All rights reserved.