Skip to content

Installation

Saif Ahmed edited this page Mar 19, 2018 · 24 revisions

CPAN entry

The system is now on CPAN. I would recommend that you try out the test environment (see below) first before committing to install.

Requirements

Wx

Using Wx requires installation of

  1. Wx Perl Modules sudo cpanm Wx
  2. Wx::Perl::Imagick This is Jouke's Drop in replacement for Wx::Image (I couldn't get WxImage to work...some help would be useful). In my setup, this module fails with an error. This appears to be because the path in the MakeFile.PL uses backslashes (as in Windows) rather than forward slashes. Linux users may download the tarball and extract the files and edit the MakeFile.PL to use forward-slashes rather than back-slashes. Would be nice if this could be installed directly using cpanm on Linux.

Tk

Using Tk requires installation of

  1. Tk and Tk::JPEG Perl Modules sudo cpanm Wx
  2. Image::Magick sudo cpanm Image::Magick
  3. MIME::Base64

Gtk

Using Gtk requires

  1. Glib
  2. Gtk3

In my case also required

sudo apt-get install libgirepository1.0-dev libgirepository1.0
sudo cpanm Glib-Object-Introspection --force

Running GUIDeFATE using Gtk results in an Introspection warning, but seems to work nevertheless.

Qt

Installing PerlQt4 took me up a fair number of backends and alleyways...eventually this worked. instructions and files from the Google Code Archive...this below may the easiest way to install it...I took a more convoluted manual way.

git clone git://anongit.kde.org/smokegen
git clone git://anongit.kde.org/smokeqt
git clone git://anongit.kde.org/perlqt
cd smokegen mkdir build; cd build; cmake ..; make ;make install ;cd ../..
cd smokeqt mkdir build; cd build; cmake ..; make ;make install ;cd ../..
cd perlqt mkdir build; cd build; cmake .. ;make ;make install ```

daxim also has suggested the following:-

On 17.10/"artful":

install libsmokeqt4-dev libqt4-dev and possibly a few others,

On openSUSE Tumbleweed:

install libsmokeqt-devel from repository KDE:Distro:Factory Current bindings (ideally this git repo should be bundled and published to CPAN, updating distro Qt4/main namespace QtCore4):

git clone git://anongit.kde.org/perlqt.git
cd perlqt
perl Makefile.PL && make && make install

To test:

cd qtgui/examples/designer/calculatorform
puic4 calculatorform.ui -o Ui_CalculatorForm.pm
perl -Mblib -I. ./calculatorform.pl

It is a mistake to install distros PerlQt or Qt from CPAN, they are for versions of Qt that are many years out of date.

The Files

GuideFATE.pm -

  1. Converts the Textual Data extracting parameters required to create the objects, setting up location and sizes of widgets, making up ID numbers, key values to reference the object and any function to be called on interaction.
  2. This can also auto-generate the code required for the functions to interact with the interface created.

GFwx.pm and GFwxFrame.pm needed for Wx backend, GFtk.pm needed for Tk backend, GFgtk for Gtk backend, GFqt.pm needed for the Qt backend.

  1. Creates the window and inserts a soon to be created frame object
  2. Assists development by printing to console any widgets found, their id for the toolkit, the key for the reference as part of the "frame" object exported by GFrame, and function to be called.
  3. Creates a frame object to be inserted into the window and exported to the calling application code.
  4. Assembles the frame contents from a list of widgets parameters inserted into object by GUIDeFATE::convert
  5. Abstracts out many of the functions to manipulate or query the interface so that the same commands work independent of back end used

The Test Environment

This is a compressed archive of a folder containing the Perl modules in a lib folder and test scripts in a scripts folder. Executing Executioner.pl will bring up a menu that allows the user to select the back-end and test different demo applications. This will use the library included in the archive over any installed versions of GUIDeFATE. (GUIDeFATE does not need to be installed, but other modules do (e.g. Tk, Wx, etc)

Clone this wiki locally