Qt Palmtop

by Kai Henning Simensen

Qt Palmtop, the new application suite from Trolltech for embedded systems, has been available for some time under the GPL license. It is now in its final stages of development and will be released as Qt Palmtop 2.0. The new version of Qt Palmtop will be dual-licensed to support both open-source and commercial interests.

The first beta version of Qt Palmtop 2.0 is expected to be available in Q1 2002, and the finished version is expected to be available from Trolltech at a later time. There are numerous improvements in the new version of Qt Palmtop 2.0 that will greatly enhance the way your PDA performs.

In late summer 2000, Trolltech launched Qt/Embedded, which is the embedded port of Qt, the cross-platform GUI toolkit. In order to be able to demonstrate the new embedded toolkit, Trolltech built a few simple applications, and this turned out to be the start of Qt Palmtop.

The applications were demonstrated on a Casio Cassiopeia and an Osprey testboard from NEC at LinuxWorld San Jose that same fall. Included in the original mix of applications was a canvas application showing alpha blending, a simple HTML viewer and a game. As time went by, Trolltech's developers got more and more involved in the development of the demonstration software, and by October 2000 it had evolved into a semi-complete personal information management (PIM) suite.

At the end of October 2000, Trolltech decided to dual-license Qt/Embedded under the GPL license and a proprietary license. Two weeks later, two separate groups had ported Konqueror, KDE's popular web browser, to Qt/Embedded. This was the starting point of the focused development of Qt Palmtop as a first-class PIM suite.

Qt Palmtop is an extension of the already-existing Qt development community. The advantage of Qt Palmtop is that it is based on the cross-platform, single-source Qt GUI. Since the Qt products are source-compatible, any existing Qt/X11 or Qt/Windows application can be ported easily to Qt/Embedded and run as part of the Qt Palmtop application suite. The Qt community has embraced Qt/Embedded, and it looks like it will embrace Qt Palmtop as well. This is shown by the KDE Project; their KDevelop IDE for Qt will include a template for the creation of Qt Palmtop applications. The developers behind KDE's KDevelop currently are working on creating build environment templates for the development of both release applications and for debugging applications in the Qt Virtual Frame Buffer, which runs on the desktop. The new work includes a cross-compiled version for any hardware architecture, so applications can be transferred to the target machine later, and even allows for remote debugging.

After having been developed for more than one year, Qt Palmtop is now a complete operating environment for device manufacturers. Qt Palmtop will make it easy for PDA, screen phone, mobile phone and other embedded device manufacturers to have a full suite of applications available for use.

The Qt Palmtop PIM suite is amazingly resource-efficient, partaking as it does of Qt/Embedded's compactness and functionality. A typical configuration requires approximately 6-8MB of RAM and Flash. This includes the embedded Linux kernel, the Qt/Embedded framework and windowing system, and the entire suite of applications. If you want your Qt Palmtop PIM suite to support Java, you can integrate a JVM using Qt AWT (see below).

The Launcher

The launcher is the control and menubar of the Qt Palmtop 2.0 application suite. It consists of two different bars. On top of the screen lies the Tab bar, which contains shortcuts to Applications, Games, Settings and Documents. The launch bar is situated at the bottom of the screen and gives access to the most commonly used Applications, Games and Settings through icons. The launch bar also supports runtime registration of status indicators and activators. This is done through a plugin architecture. The following indicators/activators are shown in the launch bar:

  • The status of the keyboard. It also is possible to activate/de-activate the keyboard and to change keyboard mode.

  • Volume control status and the activation of the Volume dialog.

  • Status of the battery and the Battery Status dialog.

Java Support (Qt AWT)

Qt AWT is Trolltech's new implementation of the Java Abstract Window Toolkit, which is used in the Java environment as the primary GUI engine. Qt AWT was created to provide a way for embedded Linux applications to reap the benefits of Qt/Embedded's rich widget library and efficient windowing system, while still supporting Java applications and applets. Once a third-party JVM (Java Virtual Machine) is installed, the user can utilize Java-based applications within Qt Palmtop.

Java applets interacting with devices that run Qt AWT find the standard AWT API, but the peer layer of AWT works directly with Qt/Embedded, which makes for a very lean and efficient solution. The rewritten peer layer makes calls to a library of native Qt widgets, with the result being a very small application that provides a crisp response.

Synchronization Framework

There will be support for synchronization between the device and the desktop for Calendar, Address Book, To-do List and Memo. This will be done through the Qt Palmtop Center. This is the application on the desktop through which users administer their Qt Palmtops. There also will be a plugin to the synchronization framework that will make syncing between the Qt Palmtop Calendar, To-do List and Address Book, and the corresponding third-party desktop PIM, flawless.

Enhanced Input Methods and Font Support

Qt Palmtop has numerous input methods available to the user, all with support of the basic Latin-1 (Western) character sets with intelligent completion of words. The input methods are as follows:

  • Handwriting: stroke-based inputs, which may be customized by the user at runtime.

  • Pickboard: users tap letter groups, and the software presents guesses of the word they want. The user also can extend the pickboard's dictionary.

  • Keyboard with QWERTY layout.

  • Keyboard with Opti layout.

There is support for full Unicode, and because Qt Palmtop uses it internally, adding support for different languages and writing systems are extremely easy. Qt Palmtop also includes support for languages that are written from right to left, and can mix left-to-right and right-to-left languages.

Application Suite

There will be numerous applications available for the Qt Palmtop application suite. Some of these have been mentioned earlier (To-do List, Calendar, Address Book and Memo). Other applications are listed below, grouped by function.

Datebook

  • Productivity Suite: Rich Text Editor, Calculator, City Time and Clock.

City Time

  • Internet Suite: E-mail Client, as well as integration with third-party web browsers.

  • Games Suite: Mindbreaker, Mine Hunt, ParaShoot, Snake, Word Game, Asteroids, Go and Patience.

Games

  • Multimedia Suite: Image Viewer and Media Player (MPEG, MP3).

  • Utilities: Appearance Settings, Screen Rotation, Command Line Terminal, File Manager, PPP Networking, Add/Remove Software Control, System Information, Help Browser and Sound Settings.

Settings

System Information

File Manager

Set System Time

Documents

New applications will be coming to market from Trolltech continually, and also from the ever-increasing and active development community evolving on SourceForge. As parts of Qt Palmtop are available under the GPL, the first applications for Qt Palmtop already are under development there. Trolltech and Qt also have a dedicated community of 100k+ developers that are using Qt as their development tool.

Trolltech's Qt Palmtop has evolved over time into a fully functional application suite for handheld devices and internet appliances. It is based on the industry-proven Qt API and features a flexible and fast software platform, which also integrates Java technology. Qt Palmtop is an application suite that should be taken seriously by all manufacturers and developers of handheld products.

Kai Henning Simensen has a Bachelor's Degree in Technical Cybernetics and Data Technology and is the product manager for Qt Palmtop at Trolltech AS. He previously worked for Schlumberger in Norway and Austin, Texas, as well as for Telenor Nett, in Norway.

Load Disqus comments