Gtk2(3)
π Gtk2 β the manual page, but make it cute π
okay bestie, welcome to the Gtk2(3) page from the User Contributed Perl Documentation β yes, that's the actual manual name, we're not skipping it, we're celebrating it. this is the whole thing, nothing dropped, all vibes upgraded. let's go π«Ά
β¨ NAME β¨
Gtk2 β your Perl interface to the 2.x series of the Gimp Toolkit library. no cap, that's literally it.
π¦ SYNOPSIS π¦
here's the whole vibe in one little script:
use Gtk2 -init;
# Gtk2->init; works if you didn't use -init on use
my $window = Gtk2::Window->new ('toplevel');
my $button = Gtk2::Button->new ('Quit');
$button->signal_connect (clicked => sub { Gtk2->main_quit });
$window->add ($button);
$window->show_all;
Gtk2->main;
look at her. window, button, signal, main loop. a whole lil app, like three lines of actual substance. iconic. π
πΈ ABSTRACT πΈ
Perl bindings to the 2.x series of the Gtk+ widget set. this module lets you write graphical user interfaces in a Perlish and object-oriented way, which means it frees you from the casting and memory management in C β but still stays very close in spirit to the original API. so you get the ease of Perl without the API going off and becoming something else entirely. balanced. ate. π
π DESCRIPTION π
the Gtk2 module lets a Perl developer use the Gtk+ graphical user interface library. wanna know more about Gtk+? go look at http://www.gtk.org.
the GTK+ Reference Manual is also a super handy companion when you're writing Gtk programs in any language β http://developer.gnome.org/doc/API/2.0/gtk/. the Perl bindings follow the C API very closely, so the C reference documentation should be considered the canonical source. like, if there's a conflict, C wins, periodt.
wanna discuss gtk2-perl, ask questions, or flame/praise the authors? join gtk-perl-list@gnome.org at lists.gnome.org. the drama is welcome, apparently. π
also go peek at the gtk2-perl website and sourceforge project page: http://gtk2-perl.sourceforge.net β¨
π INITIALIZATION π
use Gtk2 qw/-init/;
use Gtk2 qw/-init -threads-init/;
two lil magic words you can pass at use time:
-initβ equivalent toGtk2->init, called to initialize GLIB and GTK+. just about every Gtk2-Perl script should douse Gtk2 -init. this initialization should happen before you use any other Gtk2 functions in your GUI applications. it initializes everything needed to operate the toolkit and parses some standard command line options.@ARGVgets adjusted accordingly, so your own code will never see those standard arguments. she eats your flags so you don't have to. π-threads-initβ equivalent toGtk2::Gdk::Threads->init, called to initialize/enable gdk's thread safety mechanisms so that gdk can be accessed from multiple threads when used in conjunction withGtk2::Gdk::Threads->enterandGtk2::Gdk::Threads->leave. if you invoke it asGtk2::Gdk::Threads->init, it should be done beforeGtk2->initis called. but if you do it viause Gtk2 -init -threads-init, the order does not matter. flexible queen. π
π EXPORTS π
Gtk2 exports nothing by default, but some constants are available upon request. very "you have to ask nicely" of her.
Tag: constants
GTK_PRIORITY_RESIZEGTK_PATH_PRIO_LOWESTGTK_PATH_PRIO_GTKGTK_PATH_PRIO_APPLICATIONGTK_PATH_PRIO_THEMEGTK_PATH_PRIO_RCGTK_PATH_PRIO_HIGHESTGDK_PRIORITY_EVENTSGDK_PRIORITY_REDRAWGDK_CURRENT_TIME
see Glib for other standard priority levels. π
π₯ SEE ALSO π₯
perl(1),Glib(3pm),Pango(3pm).Gtk2::Gdk::Keysyms(3pm)contains a hash of key codes, culled fromgdk/gdkkeysyms.h. keyboard lore, basically. β¨οΈGtk2::api(3pm)describes how to map the C API into Perl, and some of the important differences in the Perl bindings. read this one fr fr.Gtk2::Helper(3pm)contains stuff that makes writing Gtk2 programs a little easier. the little helper bestie. π«ΆGtk2::SimpleList(3pm)makes theGtkListStoreandGtkTreeModela lot easier to use. huge.Gtk2::Pango(3pm)exports various little-used but important constants you may need to work with pango directly. underrated constants, lowkey crucial.Gtk2::index(3pm)lists the autogenerated api documentation pod files for Gtk2.Gtk2also provides code to make it relatively painless to create Perl wrappers for other GLib/Gtk-based libraries. seeGtk2::CodeGen,ExtUtils::PkgConfig, andExtUtils::Depends. if you're writing bindings, you'll probably also be interested inGtk2::devel, which is a supplement toGlib::develandGlib::xsapi. the Binding Howto, at http://gtk2-perl.sourceforge.net/doc/binding_howto.pod.html, ties it all together. that's the whole pipeline, bestie. β¨
π AUTHORS π
the gtk2-perl team β absolute legends, every single one:
muppet <scott at asofyet dot org>
Ross McFarland <rwmcfa1 at neces dot com>
Torsten Schoenfeld <kaffeetisch at web dot de>
Marc Lehmann <pcg at goof dot com>
GΓΆran Thyni <gthyni at kirra dot net>
JΓΆrn Reder <joern at zyn dot de>
Chas Owens <alas at wilma dot widomaker dot com>
Guillaume Cottenceau <gc at mandrakesoft dot com>
the way they built an entire Perl binding ecosystemβ¦ main character energy, all of them. π
π COPYRIGHT AND LICENSE π
Copyright 2003-2011 by the gtk2-perl team.
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 of the License, or (at your option) any later version.
this library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. see the GNU Library General Public License for more details. (yes the all-caps is doing the most, that's on purpose, it's legal yelling. π)
you should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
ok that's the whole page, nothing skipped, every flag, every constant, every author, every license clause accounted for. slay. π
this has been the Gtk2(3) page, from perl v5.42.0, dated 2025-07-25 β thank u for coming to my ted talk, go build a window, ily, bye bestie π¦β¨π
π¦ where this page comes from
- fedora 43: perl-Gtk2 1.24993-23.fc43 Β· LicenseRef-Callaway-LGPLv2+
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms