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.

You can get the latest source package snapshot here: Declarative UI 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

Benjamin
WebKit
Performance
Posted by Benjamin
 in WebKit, Performance
 on Tuesday, February 02, 2010 @ 11:13

Like for the other parts of Qt, having great performance is important for QtWebKit.
Traditionally, QtWebKit has been mostly used on desktop computers for advanced layouting, hybrid applications or simply to browse the web. On a modern computer, the speed of WebKit is not a problem.
The world has changed, and QtWebKit is now used on mobile […]

» 10 comments «
Simon
WebKit
Posted by Simon
 in WebKit
 on Monday, February 01, 2010 @ 12:56

Hi!
Here’s the weekly summary of Qt related changes to WebKit trunk. Big changes include Yael’s patch for WebSockets support, the beginnings of QtScript on top of JavaScriptCore’s C API, Maemo 5 tweaks and layout test fixes:

Janne added the necessary meta-data to make QtWebKit play nicely with Symbian backups (34077).
I did some code cleanups in RenderThemeQt […]

» 7 comments «
kkoehne
QtCreator
Kinetic
Declarative UI
Posted by kkoehne
 in QtCreator, Kinetic, Declarative UI
 on Wednesday, January 27, 2010 @ 11:45

Declarative UI is one of the big things on the Qt Roadmap for Qt 4.7 and 4.6.x. I already enjoyed working with the Qml language and the developers behind it for quite some time - and believe me, this one will fundamentally change the way slick Qt UIs are designed and look like! If you […]

» 49 comments «
Simon
WebKit
Posted by Simon
 in WebKit
 on Sunday, January 24, 2010 @ 09:38

This week has been a very busy week! Here’s a list of the landed changes that affect the Qt port, in chronological order:

Tor Arne has ported the Qt build of DumpRenderTree to run on Windows. (r53526, r53543).
Luiz continued with cleaning up the combobox popup handling.(33418).
Ben from the Google Team fixed a bug where touch events […]

» 4 comments «
gunnar
Threads
Painting
Graphics Dojo
Performance
Posted by gunnar
 in Threads, Painting, Graphics Dojo, Performance
 on Thursday, January 21, 2010 @ 08:18

Previous posts in this topic:

Whats Hot and whats Not
An Overview
The Raster Engine
The OpenVG Engine
The OpenGL Engine
The Cost of Convenience
Fast Text

In this series that we’ve been doing, I wanted to cover threading, a topic that has been actively discussed amongst some of the trolls over the last few months. We’ve had support for rendering into QImage’s […]

» 14 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.