On 8/10/19 10:04 AM, Phil Wolff via gtkmm-list wrote:
As indicated by the error message, liststore1 is a RefPtr to a ListStore model, which is a C++ entity that1) cannot be used as an argument to a gtk+ function, and 2) cannot be dereferenced with the * operator.At a more fundamental level, this approach is unnecessarily complicated. The entire contents of the function can be replace with a single statement:liststore1->clear (); On 8/10/19 8:20 AM, pcr wrote:I have changed from a tree store to a list store now, and I have working code, except for the last line in this call back used when a radio button is clicked in order to erase the list store and replace it with another at run time:void ExampleWindow::on_rb2_clicked() { std::cout << "rb2 clicked" << std::endl; typedef Gtk::TreeModel::Children type_children; type_children children = liststore1->children(); type_children::iterator iter; for(iter=children.begin(); iter!=children.end(); ++iter) gtk_list_store_remove (*liststore1,*iter); } The compiler message I get is test3.cc: In member function ‘void ExampleWindow::on_rb2_clicked()’:test3.cc:104:27: error: no match for ‘operator*’ (operand type is ‘Glib::RefPtr<Gtk::ListStore>’)gtk_list_store_remove (*liststore1,*iter);So my question is, I suppose, what is the proper syntax for using gtk_list_store_remove ???On 8/8/19 3:46 PM, pcr wrote:I'm trying to learn how to iterate over model rows in a manner similar to the code segment in section 9.3 of the gnome gtkmm tutorial. Consider me a newbie; the "something" I want to do below is delete/clear/erase a row - really all rows so I can display a new set of rows in response to a user action like changing a radio button. But I haven't been able to do it. Here is the snippit from section 9.3:typedef Gtk::TreeModel::Children type_children; //minimise code length. type_children children = refModel->children(); for(type_children::iterator iter = children.begin(); iter != children.end(); ++iter) { Gtk::TreeModel::Row row = *iter; //Do something with the row - see above for set/get. }*I'm also confused by the following comment I found on line; I don't see how this can work with the above code either. ***iterator Gtk::TreeStore:erase(const iterator& iter) Returns an iterator to the next row or end() if there is none" I hope you can help me . Thanks, PCR _______________________________________________ gtkmm-list mailing list gtkmm-list gnome org https://mail.gnome.org/mailman/listinfo/gtkmm-list_______________________________________________ gtkmm-list mailing list gtkmm-list gnome org https://mail.gnome.org/mailman/listinfo/gtkmm-list
Attachment:
test3.cc
Description: Text Data