Forms

Gtk2::Ex::DBI

Gtk2-Ex-DBI is the forms module from the Axis project.  You use Glade ( Glade is a UI designed for Gtk2 ) to create your UI, and then use Gtk2::Ex::DBI to bind the contents of fields in your UI to fields in a database table.

Screenshot of production system using Gtk2::Ex::DBI and Gtk2::Ex::Datasheet::DBI classes

Screenshot of production system using Gtk2::Ex::DBI and Gtk2::Ex::Datasheet::DBI classes

Database Compatibility

  • MySQL
  • Postgres
  • Microsoft SQL Server ( via DBD::ODBC )
  • SQLite

Adding support for other databases with a Perl DBI driver should be trivial.

Widget Support

  • Entry
  • TextView
  • SpinButton
  • ComboBoxEntry
  • CheckButton
  • ToggleButton
  • Calendar
Screenshot of a single form from the upcoming demo application ( a port of the Northwind database from Microsoft )

Screenshot of a single form from the upcoming demo application ( a port of the Northwind database from Microsoft )

    Record Paging

    Scalable design gives extremely high performance with minimal system resources, even with millions of records. Paging is automatic and transparent to the programmer / user, and the number of records ( apeture ) is configurable, allowing you to customize your application to suit your target system. I’ve run database front-ends on 200Mhz machines with 96MB with incredible performance.

    Callbacks

    You can attach your own code to common events such as on_current and on_apply, ( amongst others ), making it easy to catch these events no matter where they’re triggered from.

    Record Navigation and Status Widgets

    You can place specially-named widgets on your forms that will be used for record navigation ( a GtkSpinButton ) and record status notifications ( a GtkLabel ).

    Built-in Calculator

    Users can trigger a simple calculator from any managed entry widget, from a context-sensitive menu ( or you can trigger it from code ). This is great for data entry scenarios where users have to add up lots of figures and copy the total into a field.