Gtk3 - Perl interface to the 3.x series of the gtk+ toolkit
use Gtk3 -init; my $window = Gtk3::Window->new ('toplevel'); my $button = Gtk3::Button->new ('Quit'); $button->signal_connect (clicked => sub { Gtk3::main_quit }); $window->add ($button); $window->show_all; Gtk3::main;
Perl bindings to the 3.x series of the gtk+ toolkit. This module allows you to write graphical user interfaces in a Perlish and object-oriented way, freeing you from the casting and memory management in C, yet remaining very close in spirit to original API.
The Gtk3 module allows a Perl developer to use the gtk+ graphical user interface library. Find out more about gtk+ at http://www.gtk.org.
The gtk+ reference manual is also a handy companion when writing Gtk3 programs in Perl: http://developer.gnome.org/gtk3/stable/. The Perl bindings follow the C API very closely, and the C reference documentation should be considered the canonical source.
To discuss Gtk3 and ask questions join gtk-perl-list@gnome.org at http://mail.gnome.org/mailman/listinfo/gtk-perl-list.
Also have a look at the gtk2-perl website and sourceforge project page, http://gtk2-perl.sourceforge.net.
The majority of the API has not changed, so as a first approximation you can run s/Gtk2/Gtk3/ on your application. A big exception to this rule is APIs that were deprecated in gtk+ 2.x -- these were all removed from gtk+ 3.0 and thus from Gtk3. The migration guide at http://developer.gnome.org/gtk3/stable/migrating.html describes what to use instead. Apart from this, here is a list of some other incompatible differences between Gtk2 and Gtk3:
s/Gtk2/Gtk3/
The call syntax for class-static methods is now always Gtk3::Stock::lookup instead of Gtk3::Stock->lookup.
Gtk3::Stock::lookup
Gtk3::Stock->lookup
The %Gtk2::Gdk::Keysyms hash is gone; instead of Gtk2::Gdk::Keysyms{XYZ}, use Gtk3::Gdk::KEY_XYZ.
Gtk2::Gdk::Keysyms{XYZ}
Gtk3::Gdk::KEY_XYZ
The Gtk2::Pango compatibility wrapper was not carried over; simply use the namespace "Pango" everywhere. It gets set up automatically when loading Gtk3.
The types Gtk2::Allocation and Gtk2::Gdk::Rectangle are now aliases for Cairo::RectangleInt, and as such they are represented as plain hashes with keys 'width', 'height', 'x' and 'y'.
The Gtk3::Menu menu position callback passed to popup() does not receive x and y parameters anymore.
Note also that Gtk3::CHECK_VERSION will always fail when passed 2.y.z, so if you have any existing version checks in your code, you will most likely need to remove them.
Copyright (C) 2011-2012 by Torsten Schoenfeld <kaffeetisch@gmx.de>
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
To install Gtk3, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Gtk3
CPAN shell
perl -MCPAN -e shell install Gtk3
For more information on module installation, please visit the detailed CPAN module installation guide.