codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
use Glib qw/TRUE FALSE/; use Gtk2 '-init'; # Our new improved callback. The data passed to this function # is printed to stdout. sub callback { my ($button, $data) = @_; print "Hello again - $data was pressed\n"; } # another callback sub delete_event { Gtk2->main_quit; return FALSE; } # Create a new window $window = Gtk2::Window->new('toplevel'); # This is a new call, which just set the title for our # new window to "Hello Buttons!" $window->set_title("Hello Buttons!"); # Here we just set a handler for the delete_event that immediately # exits GTK. $window->signal_connect(delete_event => \&delete_event); # Sets the border width of the window. $window->set_border_width(10); # We create a box to pack widgets into. This is described in detail # in the "packing" section. The box is not really visible, it # is just used as a tool to arrange widgets. $box1 = Gtk2::HBox->new(FALSE, 0); # Put the box into the main window. $window->add($box1); # Creates a new button with the label "Button 1". $button = Gtk2::Button->new("Button 1"); # Now when the button is clicked, we call the "callback" function # with the string "button 1" as its argument. $button->signal_connect(clicked => \&callback, 'button 1'); # Instead of Gtk2::Container::add, we pack this button into the invisible # box, which has been packed into the window. $box1->pack_start($button, TRUE, TRUE, 0); # Always remember this step, this tells GTK that our preparation for this # button is complete, and it can now be displayed. $button->show; # Do the same steps again to create a second button. $button = Gtk2::Button->new("Button 2"); # Call the same callback function with a different argument, passing the string # "button 2" instead. $button->signal_connect(clicked => \&callback, 'button 2'); $box1->pack_start($button, TRUE, TRUE, 0); # The order in which we show the buttons is not really important, but I # recommend showing the window last, so it all pops up at once. $button->show; $box1->show; $window->show; # Rest in main and wait for the fun to begin! Gtk2->main; 0;
Private
[
?
]
Run code
Submit