LINUX.ORG.RU

TreeVieW Gtk


0

1

Здравствуйте,я новичок в программировании. посмотрите пожалуйста код на предмет ошибок.Проблема с добавлением/удалением элементов.

(a:14826): GLib-GObject-WARNING **: invalid cast from `GtkButton' to `GtkTreeView'

(a:14826): Gtk-CRITICAL **: gtk_tree_view_get_model: assertion `GTK_IS_TREE_VIEW (tree_view)' failed

(a:14826): GLib-GObject-WARNING **: invalid cast from `GtkButton' to `GtkTreeSelection'

(a:14826): Gtk-CRITICAL **: gtk_tree_selection_get_selected: assertion `GTK_IS_TREE_SELECTION (selection)' failed

Код http://rghost.ru/6961401

1. код лучше размещать на специально созданных для этого сервисах. http://pastebin.com/0Fgng1tA (например, тут).

2. фраза invalid cast from `GtkButton' to `GtkTreeView' должна навести на мысль, я думаю.

mono ★★★★★
()
Ответ на: комментарий от mono

1)спасибо, буду пользоваться 2)наводить то наводит, но конкретно что исправить все равно не понимаю

Backoil
() автор топика
Ответ на: комментарий от Backoil
static void
append_item(GtkWidget *widget, gpointer entry,gpointer selection)        
{
  GtkTreeStore *treestore;
  GtkTreeIter  child,iter;

  GtkTreeModel *model;

  const char *str = gtk_entry_get_text(entry);                           

  treestore = GTK_TREE_STORE(gtk_tree_view_get_model(                     
       GTK_TREE_VIEW(view)));
  model = gtk_tree_view_get_model (GTK_TREE_VIEW (view));
  
  GtkTreeSelection *sel = gtk_tree_view_get_selection (GTK_TREE_VIEW(view));
  if (gtk_tree_selection_get_selected(GTK_TREE_SELECTION(sel),      
      &model, &iter))
  {
    gtk_tree_store_append(treestore, &child, &iter);                        
    gtk_tree_store_set(treestore, &child, COLUMN, str,-1);                   
  }
}

...

int main (int argc, char *argv[])

{

  GtkWidget *window;
  GtkWidget *sw;
  //GtkWidget *view;   
  GtkWidget *remove;
  GtkWidget *add;

в append_item ты передаёшь и используешь кнопку. Событие-то к кнопке привязывается. Ещё ты забыл получить GtkTreeSelection и пытаешься его просто кастануть, вроде это неправильно.

i-rinat ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.