如何突出显示C中的GTKTreeView行,就像用鼠标选中一样
我不是看得太深,就是什么的。我有一个简单的GTKTreeVew,它是从一个文件填充的。行数由CSV文件中的行数决定 我可以从循环中的每一行获取数据,但似乎可以掌握如何突出显示该行。我可以选择它得到它的路径和打印行号,但不知道如何在代码中突出显示它如何突出显示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
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++;
}
也许中的片段符合您的要求。或者这个问题的答案。。。