Overview

From Qt Labs

Jump to: navigation, search
Graphic Dojo Corner

[edit] Dojo

[edit]

A dojo (道場, dōjō) is a Japanese term which literally means "place of the Way". As such it can refer to a formal training place for any of the Japanese do arts but typically it is considered the formal gathering place for students of a martial arts style to conduct training, examinations and other related encounters." [wikipedia.org] ...

Latest dojo examples

[edit] Examples2

[edit]

X11 Widget Mirror

A neat example showing how to monitor contents of a X11 window for changes and compose it with some transformation. All done in real time.
svn://labs.trolltech.com/svn/graphics/dojo/qx11mirror

Image: qx11mirror.png ...

[edit] Labs Overview

[edit] Accessibility/IAPoke

[edit]

The D-Bus Accessibility Poker is a tool to introspect the accessibility information of an application using the D-Bus Accessibility interfaces. It can be used to verify that the exposed accessibility information is correct. ...

[edit] Accessibility/QDasher

[edit]

QDasher is a Qt port of the Dasher input method. It was ported to demo how to use Qt's D-Bus based accessibility bridge to manipulate text. It also contains rudimentary integration as a Qtopia input method. ...

[edit] Accessibility/QDBusBridge

[edit]

The D-Bus Accessibility Bridge exposes the accessible interfaces through D-Bus. The interfaces are close to IAccessible2 and AT-SPI. ...

[edit] Compilers/QLALR

[edit]

QLALR is a LALR(1) parser generator, created by Roberto Raggi, and used internally in various Trolltech projects. The beauty of QLALR - other than the very compact tables and its speed - is the power it gives to the programmer: with QLALR, you write your main parsing function yourself, using QLALR to fill in the necessary parts required to handle your grammar. This makes the tool insanely flexible. Only drawback currently is its underdocumentation. But if you do understand LALR(1) and have used tools like yacc before, you should get along well with the examples. ...

[edit] DevDays/DevDays2007

[edit]

This is the Labs home for Trolltech Developer Days presentation content. You can find the presentation slides, code examples, and other content related to the technical presentations below.

For more information about the event itself, visit the following page:

http://trolltech.com/company/newsroom/events/allevents/devdays2007/overview ...

[edit] Graphics/Kinetic

[edit]

Welcome to the Labs project page for Kinetic.

What is Kinetic?

Kinetic is a development project driven by the goal of allowing Qt users on all platforms to more easily create dynamic, smooth and animated GUIs. Throughout the course of the project, we'll introduce a new animation framework and functionality for managing states and transitions. We'll also research improvements to Qt's styling and rendering model by building on Qt's existing GUI capabilities. ...

[edit] Graphics/Kinetic/DeclarativeUI

[edit]

Declarative UI is a way of making fluid user interfaces by describing them in terms of simple elements (Text, Image, Rect,and other QObjects) that are built up into components. The reason it is "declarative" is that rather than the changes in the UI being expressed as imperative code, they are instead expressed as sets of QObject property expressions, grouped into states. The fluid part comes from animated transitions between the sets of properties. Combined with Qt's signals and slots, a little bit of script for the tricky parts, and a rich collection of fluid UI elements, the result is a very powerful technology for making very cool looking UIs that are enjoyable to use.

The Qt Declarative UI language is named QML. It is a simple language that describes a tree of objects and their properties.

import Qt 4.6

Rectangle {
    width: 200
    height: 200
    color: "white"
    Text {
        text: "Hello World"
        anchors.centerIn: parent
    }
}

The power is that those property values can be any JavaScript expression - and because it's a binding rather than just an assignment, the expressions are re-evaluated whenever their dependencies change.

QML will be part of the Qt 4.7 release. You can get the latest Qt 4.7 snapshot from here: Qt 4.7 tarball

There's also QML aware Qt Creator binaries

Videos of Qt Declarative UI in action ...

[edit] Graphics View/Graphics Items

[edit]

On this project page, you will find links to experimental Graphics View items.

QGraphicsWidgetItem is a graphics item that allows embedding of QWidgets in a QGraphicsScene. It does not support transformations, and item stacking order (Z value) is ignored. Note also that performance-wise, QWidget is not designed for high volume use like QGraphicsItem is. With hundreds or thousands of widgets, performance will not be optimal. ...

[edit] Internet/Patternist

[edit]

Patternist is an open source XQuery and XPath 2.0 engine. Being accessible through a C++ API and a command line utility called `patternist', it aims at providing convenient functionality for querying and creating XML. ...

[edit] Internet/WebKit

[edit]

WebKit is an open source web browser engine. WebKit's HTML and JavaScript code began as a branch of the KHTML and KJS libraries from KDE. As part of KDE framework KHTML was based on Qt but during their porting efforts Apple's engineers made WebKit toolkit independent. WebKit Qt is a project aiming at porting this fabulous engine back to Qt. ...

[edit] Itemview/ItemviewsNG

[edit]

Prototype implementation to test out ideas for the next generation of itemviews in Qt. ...

[edit] Itemview/Modeltest

[edit]

ModelTest provides a way to check for common errors in implementations of QAbstractItemModel.

ModelTest continuously checks a model as it changes, helping to verify the state and catching many common errors the moment they show up. ...

[edit] QtJambi/JDBC

[edit]

The Qt Jambi / JDBC project layers the Qt SQL classes on top of JDBC, removing the dependency on the traditional Qt C++ SQL plugins. This makes deployment easier and makes Qt Jambi fit better into the Java world. ...

[edit] QtJambi/jython

[edit] Building

Run ant, it should automatically pick up the build.xml build description and build a qtjambi-jython.jar file in the current directory. Please note that both Qt Jambi libraries and jython libraries must be in the local path when compiling. It should look something like this:

C:\qtjambi\jython>ant

Buildfile: build.xml

qtjambi-jython.jar:
   [mkdir] Created dir: C:\qtjambi\jython\out
   [javac] Compiling 13 source files to C:\qtjambi\jython\out
   [javac] Note: Some input files use unchecked or unsafe operations.
   [javac] Note: Recompile with -Xlint:unchecked for details.
     [jar] Building jar: C:\qtjambi\jython\qtjambi-jython.jar
  [delete] Deleting directory C:\qtjambi\jython\out

BUILD SUCCESSFUL

Total time: 2 seconds

C:\qtjambi\jython> ...

[edit] QtJambi/QtJambiAwtBridge

[edit]

Classes that allows you to place an AWT/Swing component inside a QWidget and vice versa, bridging the gap between the two toolkits. ...

[edit] QtMessaging

[edit]

Welcome to the Labs project page for QtMessaging.

What is the Qt Messaging Framework?

The Qt Messaging Framework, QMF, is a project within Nokia that consists of a C++ library and daemon server process that can be used to build email clients, and more generally software that interacts with email and mail servers. Currently QMF is ported to Linux and Microsoft Windows, and works with the IMAP, SMTP, and POP protocols. Other platforms and protocols will be ported to in the future.

What is the problem that these new APIs will solve?

QMF provides a messaging stack for mobile computers. It provides a Lemonade Profile implementation, and in general is optimized to work well with mobile networks and devices. Mobile networks typically have relatively high cost, high latency, and low bandwidth, especially in roaming environments. Mobile devices typically have small and hard limits on resources available, compared to the mail servers that they must synchronize with.

Additionally QMF is an advanced messaging framework, providing push email, conversation threading, and Boolean algebra searching functionality. QMF allows new protocols, and potentially new types of messages to be implemented without disruption to the existing code base, via the plug-in protocol architecture.

What APIs will be included?

APIs for synchronization with mail servers, and interacting with the message store on the device are included.

What is the expected benefit from these new APIs?

QMF allows messaging clients to be built that:

  • Allow new protocols to be plugged in without changing existing software interfaces.
  • Allow disconnected access; work with your data while offline.
  • Show conversation threads including, cross folder conversations.
  • Work with large messages, folders and accounts through partial downloading, and forwarding without downloading.
  • Provide a low (bandwidth) cost mechanism for quickly discovering new mails, that is push email.
  • Expose a rich boolean algebra searching and sorting interface. ...

[edit] QtMobility

[edit]

Welcome to the Labs project page for QtMobility.

What is the Mobility Project?

It is a project within Nokia that is creating a new suite of Qt APIs for mobile device functionality. These APIs will enable cross-platform mobile application development.

What is the problem that these new APIs will solve?

Developers looking to take advantage of mobile device functionality would usually have to use APIs outside of Qt. These new APIs make Qt an even more comprehensive application and UI framework. Developers will be able to write cross-platform Qt applications that take advantage of mobile device functionality. This, for example, will make it possible to create a rich application targeting S60, Windows CE and Maemo.

What APIs will be included?

We will announce specific APIs here when they are ready for developer feedback. The code shall be available in the public repository. The Service Framework, Contact and Bearer Management APIs shall be the first.

What is the expected benefit from these new APIs?

  • Significant advantage for developers targeting mobile platforms, such as Windows CE, S60, and Maemo in 2010.
  • Build and maintain ONE application which can be deployed across MANY platforms (Nokia and non-Nokia platforms).
  • Bring existing Qt developers and new ideas to Nokia platforms.
  • Bring Nokia platform developers to non-Nokia platforms.
  • Significant advantage for Carriers and their 3rd party content developers.
  • Easier to create applications targeting many platforms ...

[edit] Qtopia/DirectFB

[edit]

DirectFB is a thin library that provides hardware graphics acceleration on Linux without bindings to X11 or any other windowing system. This makes it popular in smaller systems such as set-top boxes. It is, however, not a GUI toolkit providing you with high level widgets needed for rich graphical applications. The DirectFB screen driver plugin for Qtopia Core enables use of hardware acceleration while still having the full Qt API to work with. ...

[edit] QtScript/Generator

[edit]

Qt Script Generator is a tool that generates Qt bindings for Qt Script. ...

[edit] QtScript/QtScriptDebug

[edit]

Qt Script Debug is a framework for adding debugging capabilities to applications that use Qt Script. ...

[edit] Styles/DotNet

[edit]

This is a style inspired by the appearance of applications based on the .NET platform as well as some other known Microsoft applications such as Visual Studio 2005 and Microsoft Office 2003. It will give a modern gradient appearance to tool bars and window backgrounds, while retaining the native look and feel of other widgets. ...

[edit] Styles/GtkStyle

[edit]

This is a Qt style rendered using GTK to give a native appearence for Qt applications running on the GNOME desktop.

I have a bugtracker set up for this project at Google. ...

[edit] Threads/QtConcurrent

[edit]

Qt Concurrent is a C++ template library for writing multi-threaded applications.

Qt Concurrent provides high-level APIs that makes it possible to write multi-threaded

programs withouth using low-level threading primitives such as critcal sections, mutexes or wait conditions.

Programs written with Qt Concurrent automaticallly adjust the number of

threads used according to the number of processor cores available. This means that applications written today will continue to scale when deployed on multi-core systems in the future. ...

[edit] Toolkit/Qt

[edit]

The Qt Snapshot Releases are regularly-released unstable versions of Qt generated automatically from the current development source tree here at Trolltech, and provided daily via rsync and via FTP.

The purpose of the snapshots is to give rapid turn-around on bug reports so that developers do not have to work around bugs that will be fixed in the next stable release.

The snapshots are currently only available for the Qt Open Source Edition. ...

[edit] Tools/QtCreator

[edit]

Qt Creator is a new cross-platform integrated development environment (IDE) tailored to the needs of Qt developers.


The Official QtCreator project has moved to qt.gitorious.org! ...

[edit] Tools/QtCreator/FAQ

...

[edit] xml/scxml

[edit]

This project's development has moved to our public repository. The old version remains here, and the Qt solution is also available. ...


[edit] Latest 5 'Labs' Blogs

Simon
WebKit
Posted by Simon
 in WebKit
 on Saturday, March 13, 2010 @ 16:02

This week’s heaviest contributions were Antonio’s directional navigation and Benjamin’s scrolling optimization for pages with fixed positioned elements.

Antonio landed his work for spatial navigation, making it possible to navigate through links and widgets with the cursor keys. The long list of patches also includes layout test coverage, DRT support and a flag in QWebSettings for […]

» No comments «
Daniel Teske
Qt
QtCreator
Declarative UI
Posted by Daniel Teske
 in Qt, QtCreator, Declarative UI
 on Thursday, March 11, 2010 @ 13:21

Just over a year ago we released Qt Creator 1.0. Today we are releasing the alpha for Qt Creator 2.0. And the 2.0 release is shaping up really nicely. I’m feeling as excited about the 2.0 release as for the 1.0. We have something awesome and hopefully I can convince you to try the alpha […]

» 23 comments «
espenr
Qt
KDE
WebKit
S60
Symbian
Posted by espenr
 in Qt, KDE, WebKit, S60, Symbian
 on Monday, March 08, 2010 @ 18:30

Several of the Trolls are right now in Manaus (Brasil) at the Bossa Conference 2010 and we’re having a great time. The conference is hosted by INDt here in Brasil, and the topics covering Qt directly are:

QML
QtWebkit
Next generation widgets, and
Shipping Qt apps on Symbian

but there are also talks about KDE, Ubuntu, Maemo etc.

In my talk […]

» 4 comments «
Simon
WebKit
Posted by Simon
 in WebKit
 on Friday, March 05, 2010 @ 16:03

It’s been a more quiet week. Here are the highlights:

Robert implemented support for private browsing in PluginViewQt (33180).
Jedrzej continued upstreaming QtScript API and bug fixing in it (34843, 34850, 35387).
Andreas hooked up QNetworkReplyHandler to Qt 4.7’s support for the HTTP OPTION verb (34647).
Jarkko, Nicholas, Kim and Noam fixed various bugs in the MediaElement backend, the […]

» 2 comments «
Simon
Qt
WebKit
Posted by Simon
 in Qt, WebKit
 on Wednesday, March 03, 2010 @ 10:22

QtWebKit is a part of Qt and we’ve always released them together. With a rapidly growing development community we’d like to decouple QtWebKit from Qt’s releases. It is a project on its own, it’s developed as part of the WebKit project and therefore deserves its own release. We’re going to call the first standalone release […]

» 8 comments «


© 2008 Nokia Corporation and/or its subsidiaries. Nokia, Qt and their respective logos are trademarks of Nokia Corporation in Finland and/or other countries worldwide.
All other trademarks are property of their respective owners.