Re: gtk_box_pack: assertion `child->parent == NULL



Hi,

You also seem to be using item before you've declared it:

>      item->signal_activate().connect(sigc::bind(sigc::mem_fun(*this,
>              &window::on_menu_posission),Gtk::POS_BOTTOM));
>      menu1.append(*item);
>
>      item=Gtk::manage(new Gtk::MenuItem("Virsutinis"));


Also, have you looked in the book? http://library.gnome.org/devel/gtkmm-tutorial/unstable/chapter-menus-and-toolbars.html.en

Ian.


From: Yann LEYDIER <yann leydier info>
To: gtkmm-list gnome org
Sent: Sat, 12 February, 2011 9:49:51 AM
Subject: Re: gtk_box_pack: assertion `child->parent == NULL

As menus can popup, I would expect them to be attached to some kind of
window and therefore to have a parent, thus the failed assertion…

Maybe you could try to simulate a menu with buttons (calling
but.set_relief(Gtk::RELIEF_NONE)) or a treeview (calling
tv.set_hover_selection(true)) ?

On 10/02/11 19:27, cppgangster wrote:
>
> Hi I am trying to put Gtk::menu to Gtk:Vbox container, when I run it, I get
> exception throw with msg "(main:14565): Gtk-CRITICAL **: gtk_box_pack:
> assertion `child->parent == NULL' failed"
> And here is my code:
> /*
>  * File:  newfile.hpp
>  * Author: cppguy
>  *
>  * Created on 10 February 2011, 06:44
>  */
>
> #ifndef NEWFILE_HPP
> #define    NEWFILE_HPP
> #include "gtkmm-2.4/gtkmm/window.h"
> #include<gtkmm-2.4/gtkmm/menu.h>
> #include<gtkmm-2.4/gtkmm/label.h>
> #include "gtkmm/scale.h"
> #include "gtkmm/box.h"
>
> class window:public Gtk::Window{
> private:
>      Gtk::Menu menu1;
>      Gtk::Label label1;
>      Gtk::HScale hscale1;
>      Gtk::HBox hbox1;
>      Gtk::VBox vbox1;
> public:
>      window();
>      ~window();
>      void on_menu_posission(Gtk::PositionType);
>
> };
>
>
>
> #endif    /* NEWFILE_HPP */
>
> #include<gtkmm-2.4/gtkmm/action.h>
> #include<gtkmm-2.4/gtkmm/adjustment.h>
>
> #include "newfile.hpp"
> #include "gtkmm/menuitem.h"
>
> window::window():
>          label1("Pasirinkite is saraso: "),
>          hscale1(0.0,10.0,0.5),
>          hbox1(false,5),
>          vbox1(false,5)
> {
>      set_title("Menu");
>      Gtk::MenuItem* item=Gtk::manage(new Gtk::MenuItem("Apatinis"));
>      item->signal_activate().connect(sigc::bind(sigc::mem_fun(*this,
>              &window::on_menu_posission),Gtk::POS_BOTTOM));
>      menu1.append(*item);
>
>      item=Gtk::manage(new Gtk::MenuItem("Virsutinis"));
>      item->signal_activate().connect(sigc::bind(sigc::mem_fun(*this,
>              &window::on_menu_posission),Gtk::POS_TOP));
>      menu1.append(*item);
>
>      add(hbox1);
>
>      hbox1.set_border_width(10);
>      vbox1.set_border_width(5);
>      hbox1.pack_start(vbox1);
>      vbox1.pack_start(label1);
>      vbox1.pack_start(hscale1);
>      hbox1.pack_start(menu1);
>
>
>      show_all_children();
> }
> window::~window(){}
> void window::on_menu_posission(Gtk::PositionType pos){
>      hscale1.set_value_pos(pos);
> }
> /*
>  * File:  main.cpp
>  * Author: cppguy
>  *
>  * Created on 10 February 2011, 06:40
>  */
>
> #include<cstdlib>
> #include "gtkmm/main.h"
> #include "newfile.hpp"
>
> using namespace std;
>
> /*
>  *
>  */
> int main(int argc, char** argv) {
>      Gtk::Main m(argc,argv);
>      window win;
>      Gtk::Main::run(win);
>
>      return 0;
> }
>
>

_______________________________________________
gtkmm-list mailing list
gtkmm-list gnome org
http://mail.gnome.org/mailman/listinfo/gtkmm-list

 

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]