Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
PerlMonks  

Re: A dynamic Main Window in GTK2

by traveler (Parson)
on Dec 20, 2007 at 23:33 UTC ( #658325=note: print w/ replies, xml ) Need Help??


in reply to A dynamic Main Window in GTK2

Add it as you would outside the loop (using a layout, adding it to a vbox or hbox, whatever). The be sure to show it with a show_all on the main window.


Comment on Re: A dynamic Main Window in GTK2
Download Code
Re^2: A dynamic Main Window in GTK2
by deadpickle (Pilgrim) on Dec 21, 2007 at 00:53 UTC
    Ok. Here is some sample code.
    #!/usr/bin/perl -w use strict; use Gtk2 '-init'; use Glib qw/TRUE FALSE/; #shared variables my $active_interface: shared; #create dummy main window my $main_window = Gtk2::Window->new('toplevel'); $main_window->signal_connect(delete_event=> sub{Gtk2->main_quit}); my $label = Gtk2::Label->new('TEST '); my $main_table = Gtk2::Table->new(2, 1, FALSE); $main_table->attach_defaults($label, 0, 1, 0, 1); $main_window->add($main_table); $main_window->show_all; &start_up; Gtk2->main; #The start up askng the user what position they are in sub start_up{ #the User interface select window my $start_up = Gtk2::Window->new('toplevel'); #create table my $job_table = Gtk2::Table->new(3, 1, FALSE); #label my $job_label = Gtk2::Label->new(" Select User Interface +"); #Combobox to select user my $job_select = Gtk2::ComboBox->new_text; $job_select->append_text('Spotter'); $job_select->append_text('Tracker'); $job_select->append_text('VC Base'); $job_select->append_text('Met Base'); $job_select->set_active(0); #add the Ok button my $job_button = Gtk2::Button->new('Start'); #add to table $job_table->attach_defaults( $job_label, 0, 1, 0, 1); $job_table->attach_defaults( $job_select, 0, 1, 1, 2); $job_table->attach_defaults( $job_button, 0, 1, 2, 3); #add widgets $start_up->add($job_table); $start_up->show_all; #capture the interface type to use and display in the main window $job_button->signal_connect('button-press-event' => sub { $active_in +terface = $job_select->get_active_text; my $active_interface_label = +Gtk2::Label($active_interface); $main_table->attach_defaults($active_ +interface_label, 0, 1, 1, 2); $start_up->destroy}); }
    and upon running I receive these errors: Use of inherited AUTOLOAD for non-method Gtk2::Label() is deprecated at GRRUVI-v 1.20.pl line 60. *** unhandled exception in callback: *** Can't locate auto/Gtk2/Label.al in @INC (@INC contains: C:/Perl/site/lib C :/Perl/lib .) at GRRUVI-v1.20.pl line 60 *** ignoring at GRRUVI-v1.20.pl line 25. So I guess the question is how do I get this to work? Ant ideas?
      I think your problem is that when you create the Label in the callback you do Gtk2::Label($active_interface); and that should be Gtk2::Label->new($active_interface); (of course, you still need to show_all on the main window)

      HTH, --traveler

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://658325]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others scrutinizing the Monastery: (6)
As of 2015-07-02 23:13 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (47 votes), past polls