如何在接收GtkTreeModel的函数中使用GtkTreeStore

时间:2011-12-09 12:57:32

标签: c linux user-interface gtk

我想使用以下代码:

gtk_tree_model_get_path(store, &iter);

其中storeGtkTreeStore * 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);

但我不确定这是否正确。求你了,建议我。

1 个答案:

答案 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,它实现了它。

我希望能回答你的问题!