FAQ 3.14 How can I write a GUI (X, Tk, Gtk, etc.) in Perl?

Discussion in 'Perl Misc' started by PerlFAQ Server, Jan 18, 2011.

  1. This is an excerpt from the latest version perlfaq3.pod, which
    comes with the standard Perl distribution. These postings aim to
    reduce the number of repeated questions as well as allow the community
    to review and update the answers. The latest version of the complete
    perlfaq is at http://faq.perl.org .


    3.14: How can I write a GUI (X, Tk, Gtk, etc.) in Perl?

    (contributed by Ben Morrow)

    There are a number of modules which let you write GUIs in Perl. Most GUI
    toolkits have a perl interface: an incomplete list follows.

    Tk This works under Unix and Windows, and the current version doesn't
    look half as bad under Windows as it used to. Some of the gui
    elements still don't 'feel' quite right, though. The interface is
    very natural and 'perlish', making it easy to use in small scripts
    that just need a simple gui. It hasn't been updated in a while.

    Wx This is a Perl binding for the cross-platform wxWidgets toolkit (
    http://www.wxwidgets.org ). It works under Unix, Win32 and Mac OS X,
    using native widgets (Gtk under Unix). The interface follows the C++
    interface closely, but the documentation is a little sparse for
    someone who doesn't know the library, mostly just referring you to
    the C++ documentation.

    Gtk and Gtk2
    These are Perl bindings for the Gtk toolkit ( http://www.gtk.org ).
    The interface changed significantly between versions 1 and 2 so they
    have separate Perl modules. It runs under Unix, Win32 and Mac OS X
    (currently it requires an X server on Mac OS, but a 'native' port is
    underway), and the widgets look the same on every plaform: i.e.,
    they don't match the native widgets. As with Wx, the Perl bindings
    follow the C API closely, and the documentation requires you to read
    the C documentation to understand it.

    This provides access to most of the Win32 GUI widgets from Perl.
    Obviously, it only runs under Win32, and uses native widgets. The
    Perl interface doesn't really follow the C interface: it's been made
    more Perlish, and the documentation is pretty good. More advanced
    stuff may require familiarity with the C Win32 APIs, or reference to

    CamelBones ( http://camelbones.sourceforge.net ) is a Perl interface
    to Mac OS X's Cocoa GUI toolkit, and as such can be used to produce
    native GUIs on Mac OS X. It's not on CPAN, as it requires frameworks
    that CPAN.pm doesn't know how to install, but installation is via
    the standard OSX package installer. The Perl API is, again, very
    close to the ObjC API it's wrapping, and the documentation just
    tells you how to translate from one to the other.

    Qt There is a Perl interface to TrollTech's Qt toolkit, but it does not
    appear to be maintained.

    Sx is an interface to the Athena widget set which comes with X, but
    again it appears not to be much used nowadays.


    The perlfaq-workers, a group of volunteers, maintain the perlfaq. They
    are not necessarily experts in every domain where Perl might show up,
    so please include as much information as possible and relevant in any
    corrections. The perlfaq-workers also don't have access to every
    operating system or platform, so please include relevant details for
    corrections to examples that do not work on particular platforms.
    Working code is greatly appreciated.

    If you'd like to help maintain the perlfaq, see the details in
    PerlFAQ Server, Jan 18, 2011
    1. Advertisements

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Replies:
  2. Kevin Walzer

    Re: PIL (etc etc etc) on OS X

    Kevin Walzer, Aug 1, 2008, in forum: Python
    Fredrik Lundh
    Aug 13, 2008
  3. Gergely Kontra
    Joao Pedrosa
    Jun 18, 2004
  4. Jedrin
    Oct 5, 2010
  5. PerlFAQ Server
    PerlFAQ Server
    Apr 23, 2011

Share This Page