我想使用以下代码:
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);
但我不确定这是否正确。求你了,建议我。
答案 0 :(得分:1)
在C程序中使用GtkListStore
时,我使用GTK_TREE_MODEL()
进行投射,例如:
GtkTreeStore *store;
GtkTreeIter iter;
GtkTreePath *path = gtk_tree_model_get_path (GTK_TREE_MODEL (store), &iter);
这是必要的,因为GtkTreeModel是一个接口:GtkListStore
不是子类GtkTreeModel
,它实现了它。
我希望能回答你的问题!