如何突出显示C中的GTKTreeView行,就像用鼠标选中一样

如何突出显示C中的GTKTreeView行,就像用鼠标选中一样,c,gtk,row,highlight,C,Gtk,Row,Highlight,我不是看得太深,就是什么的。我有一个简单的GTKTreeVew,它是从一个文件填充的。行数由CSV文件中的行数决定 我可以从循环中的每一行获取数据,但似乎可以掌握如何突出显示该行。我可以选择它得到它的路径和打印行号,但不知道如何在代码中突出显示它 selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(gtk_tree_view)); if (gtk_tree_selection_get_selected(selection, &mod

我不是看得太深,就是什么的。我有一个简单的GTKTreeVew,它是从一个文件填充的。行数由CSV文件中的行数决定

我可以从循环中的每一行获取数据,但似乎可以掌握如何突出显示该行。我可以选择它得到它的路径和打印行号,但不知道如何在代码中突出显示它

selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(gtk_tree_view));
if (gtk_tree_selection_get_selected(selection, &model, &iter))
{
    path = gtk_tree_model_get_path (model, &iter);
    path_string = gtk_tree_path_to_string (path);
    row = atoi(path_string);
    set_active_test_row_single(row);

    printf("\nSelected ROW is %d\n", row);

}

感谢所有链接、反馈等。似乎找不到“突出显示”行号的功能。当鼠标点击一行时,同样的“突出显示”也会发生。

我终于在谷歌搜索了大约一周,并在其他语言中看到了其他类似的例子

void single_button_clicked_cb(GtkWidget *widget, gpointer data)
{
    static int         index = 0;
    GtkTreeIter iter;
    char buf[9];
    GtkTreeModel *model;
    GtkAdjustment *vadjustment;
    int i;

    printf("\nScroll Active test row to %d\n",index);

    sprintf(buf,"%d",index);

    gtk_widget_grab_focus (GTK_WIDGET(gtk_tree_view));

    GtkTreePath *path = gtk_tree_path_new_from_string(buf);

    gtk_tree_view_scroll_to_cell(GTK_TREE_VIEW (gtk_tree_view),path, NULL,FALSE, 0.0, 0.0);

    gtk_tree_view_set_cursor (gtk_tree_view,path,NULL,FALSE); // works but doesn't scroll

    gtk_tree_path_free(path);

    index++;
}
也许中的片段符合您的要求。或者这个问题的答案。。。