我想使用以下代码:
gtk_tree_model_get_path(store, &iter);
其中
store
是GtkTreeStore * store
,但我的c++编译器(g++)抛出错误:cannot convert «GtkTreeStore* {aka _GtkTreeStore*}» to «GtkTreeModel* {aka _GtkTreeModel*}» for argument «1» to «GtkTreePath* gtk_tree_model_get_path(GtkTreeModel*, GtkTreeIter*)»
所以我有写这篇文章的冲动:
gtk_tree_model_get_path(static_cast<GtkTreeModel *> store, &iter);
或者这个:
gtk_tree_model_get_path((GtkTreeModel *) store, &iter);
但我不确定它是否正确。请,建议我。
最佳答案
在C程序中使用GtkListStore
时,我使用GTK_TREE_MODEL()
来进行转换,例如:
GtkTreeStore *store;
GtkTreeIter iter;
GtkTreePath *path = gtk_tree_model_get_path (GTK_TREE_MODEL (store), &iter);
这是必要的,因为GtkTreeModel是一个接口:
GtkListStore
不是子类GtkTreeModel
,它实现它。我希望这能回答你的问题!