LinuxDevices.com Archive Index (1999-2012) | 2013-current at LinuxGizmos.com | About  

Qt 4.5 ships, as Qtopia bows out

Mar 3, 2009 — by Eric Brown — from the LinuxDevices Archive

[Updated Mar. 4] — Nokia-owned Qt Software is shipping Qt 4.5, a cross-platform library now available under a commerce-friendly LGPL license. Additionally, Qt launched a new cross-platform IDE (integrated development environment) and SDK, and said it would discontinue the Linux-only Qt Extended stack (formerly… “Qtopia”).

(Click for larger view of Qt Creator welcome screen)

Taken as a whole, the slew of announcements reflect Qt Software's growing focus on Qt's cross-platform potential. As mobile and desktop environments converge, the company hopes to help both mobile and desktop application developers develop software that can be recompiled for multiple target OSes with a high percentage of shared code. Qt has traditionally supported Linux, Windows, Mac OS (“Carbon”), and Java VMs, adding recent support for a Windows CE/Mobile and Nokia's Symbian-based S60. It has now completed its 64-bit port to the native “Cocoa” API in Mac OS X 10.5 (see below).

Adieu, Qtopia


Roku's Qt Extended-based
Netflix Player

(One of hundreds of
Qtopia design wins
featured on LinuxDevices
through the years)

A farewell salute is in order to one of the cornerstones of embedded Linux over the last seven years: Qt's (formerly Trolltech's) application stack for mobile Linux devices, Qt Extended. Formerly Qt for Embedded Linux, and before that and more enduringly, Qtopia, Qt Extended will be supported as a standalone stack for another year.

Qt Software's Benoit Schillings, chief technologist, called the change an “evolution,” rather than a discontinuation, though. Schillings commented, “A lot of Qt Extended's APIs add functionality specific to a class of devices, such as adding support for Bluetooth, IP telephony, or input devices like touchscreens. Today, those things make sense not only in a mobile device, but in a cross-platform environment. We are taking APIs and functionality specific to the embedded device market and moving it into the mainstream release… so, for example, you will see the Qtopia UI move to other platforms.”

Schillings shrugged off the suggestion that Nokia may wish to focus on Maemo as its mobile Linux stack, commenting that Maemo has a “separate identity.”

Shifting the topic back to Qtopia, Schillings elaborated, “Seven years ago when we built Qtopia, there was a Linux kernel and not much on top of it for embedded developers. So, it was important for someone to go and build the layers that became Qt Extended.”

But the Linux community has evolved quite a bit, since then, Schillings observes. Indeed it has. For example, fairly complete — and completely free — stacks like Maemo, Android, and Moblin (among others) continue to mature, posing a challenge for those hoping to commercialize integration efforts like Qt Extended.

Schillings continued, “Today, being cross platform is more important. We do not need to control the entire stack. We want people who write Qt interfaces to be able to have the flexibility to run it on GNOME, and not just KDE. In the end, this will provide a product that is more coherent.”

And what about all those hundreds of Qtopia applications out there? “Most Qtopia applications run on Qt functionality, so it will not be a traumatic transition.” Schillings continued. “It's all about adoption for us. How do we get Qt everywhere? We need to remove some barriers, and be more open in how we integrate with different development architectures.”

A more open, developer-friendly Qt 4.5

As previously announced, Qt 4.5 will be the first Qt release to be offered under a more open LGPL (“Lesser” or “Library” General Public License) licensing option, alongside existing commercial and GPL license options. LGPL places copyleft restrictions on the libraries themselves, but does not extend these restrictions to software that links to them. Qt Software sums it up best when it says that Qt developers “can now build their proprietary applications on top of Qt without paying a licensing fee.”

With the increased adoption expected to result from the looser license, Qt Software is ramping up for greater open source collaboration. In the coming weeks, Qt Software will launch a “Qt Contribution” website where developers can view the Qt code repository, read coding guidelines, and contribute to Qt-related development projects according to a clearly stated contribution model, Schillings said.

Additionally, Qt Software has announced a paid technical support option for those licensing Qt under LGPL and GPL licenses.

What's new in Qt 4.5

Qt 4.5 now offers several upgraded graphics engines that are said to dramatically improve Qt-based run-times. Developers can use a new pluggable graphics system that lets them select between raster, native graphics system, or the newly supported OpenGL ES 2.0. An OpenVG back-end, meanwhile, is said to be in the works.

Graphics performance improvements are said to be based on the following:

  • Paint engine and text rendering improvements
  • GraphicsView and StyleSheet improvements
  • X11 paint engine now uses XSHM (shared memory), for less overhead
  • New OpenGL ES 2.0-based paint engine

To show developers just how much faster they are supposedly tuning their applications, the company has provided a new “QtBenchLib” performance benchmarking library. Various benchmarks from the library are shown in the following charts.


Raster drawing benchmarks (Source: Qt Software)
(Click to enlarge)


Mass updates and moves benchmarks. (Source: Qt Software)
(Click to enlarge)


Drawing images benchmark (Source: Qt Software)
(Click to enlarge)

Qt 4.5 also improves integration with the WebKit web rendering engine, a process that began with last year's Qt 4.4. Qt now uses the latest upstream (trunk) version of WebKit, which is said to improve performance, and offers support for the blazing-fast SquirrelFish Javascript interpreter. The new WebKit also provides off-line access to web data, and the ability to integrate media into web-aware apps with less code, and support for Netscape's plug-in API.

Specific new WebKit-related features are said to include:

  • Near 100 percent compliance with Acid3 testsuite
  • Full page zooming of images and fonts
  • CSS-based transformation and animation (WebKit extension)
  • Standards compatibility improvements
  • HTML 5 support with A/V elements using Phonon, and client-side storage of web content
  • SquirrelFish JavaScript engine for executing JavaScript code in WebKit
  • Netscape plugin API support, allowing Qt apps to load Adobe Flash elements, such as the YouTube player

Other new Qt 4.5 features include advanced web UI effects, such as animations, transformations, and zooming. XML support has also been improved, with the ability to more easily reformat XML content without modifying the data structure. The improved XML support also means there is no longer a need for an intermediary DOM presentation layer, says Qt. Software.

Additional enhancements to Qt 4.5 are said to include:

  • OpenDocument Format read support (write to follow) for OpenOffice.org and KOffice interoperability
  • Improved proxy support, offering new integration with system proxy settings and non-trivial proxy case handling
  • Qt Designer improvements, including support for changing item types and different screen resolutions
  • Qt Assistant improvements
  • QGtkStyle, enabling Qt apps to look native on GNOME
  • Top-level semi-transparent window support

Qt. 4.5 adds a Debugger application for Qt Script, which is billed as an integrated ECMA standard scripting engine. Features are said to include a command line tool for QtScript output, and the ability to step through running script code to inspect variables. Meanwhile, there are future plans to bridge SquirrelFish to QtScript.

Finally, Qt 4.5 has been ported to Apple's new Mac OS X Cocoa API. Previously Qt supported only the Mac Carbon framework. Now, developers wanting to target Mac platforms can create applications that support 32 or 64 bit, Intel or PowerPC Mac binaries from a single source, says the company.

Meanwhile, the port to Windows CE, first unveiled last year, has been completed, with new features including the Phonon Multimedia Framework.

Qt Creator

The new Qt Creator IDE is available for Linux, Windows, and Mac OS X development hosts. It includes an “advanced” C/C++ editor, and integrates with Qt-specific features like “Signals & Slots,” Qt Designer, and Qmake. It also integrates a debugger that is aware of Qt class structures, says the company. An open plug-in architecture is promised for a future release.

Schillings commented, “It's written using Qt, and running on all the platforms that Qt supports. So, it's a very good testbed for our own product.”

Schillings added, “We're not trying to replace native tools like S60 Carbide, Visual Studio, and Eclipse, but it's valuable to have a consistent environment across all the supported platforms.”


Qt Creator screens for code completion (left) and visualizing QStringList
(Click on either to enlarge)

Other touted Qt Creator features include “lightning fast” code navigation tools, nav tools that let developers quickly open files without knowing exact names or locations, and indexed searching for classes, functions, symbols, and files. Developers can follow symbols across several locations and files, and switch quickly between headers and source files, or between declarations and definitions, the company says.

The C++ code editor is said to feature syntax highlighting and automatic code completion. Other features are said to include hints, code folding, parenthesis matching and selection, and block selection.

Additional features of Qt Creator include:

  • Context sensitive help system
  • Integrated visual debugger, based on gdb
  • Integrated source code management
  • Project and build management tools
  • LGPL licensing option

Availability

Qt. 4.5, Qt Creator, and a final Qt Extended 4.5 release are all available now. Also available on Linux (32- and 64-bit), Windows, and Mac OS X desktops are “Qt SDKs,” which are pre-built, single-installer packages comprised of the Qt 4.5 libraries, Qt Creator, and Qt Linguist. The company is currently reviewing the possibility of offering an embedded version of the SDK.


 
This article was originally published on LinuxDevices.com and has been donated to the open source community by QuinStreet Inc. Please visit LinuxToday.com for up-to-date news and articles about Linux and open source.



Comments are closed.