can you please provide your sscce.glade file? On Fri, May 15, 2009 at 02:42:52PM +1000, Peter E Dennis wrote: > Hi All, > > I am trying to create a function that when a button is clicked it will > create a table of widgets laid out in 2 rows x 9 columns and add it to > a vbox. > > At the moment I am trying to do the following: > > #!/usr/bin/perl > use Gtk2 -init; > use Gtk2::GladeXML; > > # Read in glade file with gui > $gladexml = Gtk2::GladeXML->new('sscce.glade'); > > # Get main window vbox > $vbox1 = $gladexml->get_widget('vbox1'); > > # Get vbox to hold created tables > $vbox2 = $gladexml->get_widget('vbox2'); > > # Create a table of widgets > $table = &ret_table(); > > # Show the widgets? > $vbox2->pack_start_defaults($table); #get undefined error here... > $vbox2->show_all; > $vbox1->pack_start_defaults($vbox2); > $vbox1->show_all; > > # Get main window from widget tree. > $main_window = $gladexml->get_widget('window1'); > > # Quit when user clicks on the close button/alt-f4 etc. > $main_window->signal_connect (destroy => sub { Gtk2->main_quit; }); > > # Maximise window > $main_window->maximize; > > # Run main loop. > Gtk2->main; > > > sub ret_table > { > my $table = Gtk2::Table->new(2,9,FALSE); > > # Title Row > my $lbl_num = Gtk2::Label->new("Num"); > my $lbl_time = Gtk2::Label->new("Time/Session"); > my $lbl_objectives = Gtk2::Label->new("Objectives/Learning Outcomes"); > my $lbl_tasks = Gtk2::Label->new("Activities/Tasks/Content"); > my $lbl_resources = Gtk2::Label->new("Resources"); > > my $tcol_sep1 = Gtk2::VSeparator->new; > my $tcol_sep2 = Gtk2::VSeparator->new; > my $tcol_sep3 = Gtk2::VSeparator->new; > my $tcol_sep4 = Gtk2::VSeparator->new; > > # Entry Row > my $chk_num = Gtk2::CheckButton->new("1."); > my $e_time = Gtk2::Entry->new; > my $txtv_objectives = Gtk2::TextView->new; > my $txtv_tasks = Gtk2::TextView->new; > my $txtv_resources = Gtk2::TextView->new; > > my $rcol_sep1 = Gtk2::VSeparator->new; > my $rcol_sep2 = Gtk2::VSeparator->new; > my $rcol_sep3 = Gtk2::VSeparator->new; > my $rcol_sep4 = Gtk2::VSeparator->new; > > # Layout title row > $table->attach_defaults($lbl_num, 0, 1, 0, 1); > $table->attach_defaults($tcol_sep1, 1, 2, 0, 1); > $table->attach_defaults($lbl_time, 2, 3, 0, 1); > $table->attach_defaults($tcol_sep2, 3, 4, 0, 1); > $table->attach_defaults($lbl_objectives, 4, 5, 0, 1); > $table->attach_defaults($tcol_sep3, 5, 6, 0, 1); > $table->attach_defaults($lbl_tasks, 6, 7, 0, 1); > $table->attach_defaults($tcol_sep4, 7, 8, 0, 1); > $table->attach_defaults($lbl_resources, 8, 9, 0, 1); > > # Layout entry row > $table->attach_defaults($chk_num, 0, 1, 0, 1); > $table->attach_defaults($rcol_sep1, 1, 2, 0, 1); > $table->attach_defaults($e_time, 2, 3, 0, 1); > $table->attach_defaults($rcol_sep2, 3, 4, 0, 1); > $table->attach_defaults($txtv_objectives, 4, 5, 0, 1); > $table->attach_defaults($rcol_sep3, 5, 6, 0, 1); > $table->attach_defaults($txtv_tasks, 6, 7, 0, 1); > $table->attach_defaults($rcol_sep4, 7, 8, 0, 1); > $table->attach_defaults($txtv_resources, 8, 9, 0, 1); > > return $table; > } > > However at the moment I get the following error: > Can't call method "pack_start_defaults" on an undefined value at > ./main.pl line 18. > > This is the line: > $vbox2->pack_start_defaults($table); # get undefined error here. > > Is the table not being defined or is it the vbox? > > Am I going the right way about this? > > Many thanks, > > Peter. > _______________________________________________ > gtk-perl-list mailing list > gtk-perl-list@gnome.org > http://mail.gnome.org/mailman/listinfo/gtk-perl-list
-- _________________________ Ryan Niebur ryanrya...@gmail.com
signature.asc
Description: Digital signature
_______________________________________________ gtk-perl-list mailing list gtk-perl-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-perl-list