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.

 Rect {
   width: 200
   height: 200
   color: "white"
   Text {
     text: "Hello World"
     anchors.centeredIn: 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] QtMobility

[edit]

Welcome to the Labs project page for QtMobility.

What is the Mobility Project?

It is a project within Qt Software 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

ariya
WebKit
Graphics Dojo
Posted by ariya
 in WebKit, Graphics Dojo
 on Monday, June 29, 2009 @ 23:01

If you use QWebView, do you know how make its background to be translucent? Apparently, the trick is not so well known, hence I decide to share it here.
Basically it boils down the following code snippet:
QPalette palette = view->palette();
palette.setBrush(QPalette::Base, Qt::transparent);
view->page()->setPalette(palette);
view->setAttribute(Qt::WA_OpaquePaintEvent, false);
The first three lines set a new transparent brush for the page. This is necessary […]

» 7 comments «
Simon
Qt
WebKit
S60
Posted by Simon
 in Qt, WebKit, S60
 on Monday, June 29, 2009 @ 15:06

In the recent pre-release of Qt for S60 we have included a build of WebKit that compiles and runs on S60. This pre-release is an important milestone for this porting effort that started about half a year ago. Hence, I would like to briefly highlight a few things about it:
The main work is finding good […]

» 5 comments «
Jens
Qt
Styles
Posted by Jens
 in Qt, Styles
 on Friday, June 26, 2009 @ 14:08

I did some work this week on a task related to higher DPI values on Vista. The task was essentially about scaling artifacts related to checkboxes, radio buttons and menus. However after fixing up those I decided that we needed a little more to really work properly on Vista and Windows 7 and realized that […]

» 3 comments «
Richard Moe Gustavsen
Qt
Labs
 in Qt, Labs
 on Tuesday, June 23, 2009 @ 13:11

Not long after Brad blogged about multi-touch in May, I got my hands on a brand new MacBook Pro under the excuse of implementing multi-touch support for Qt on Mac. This machine has a big and sexy trackpad (excuse my sexual orientation) that goes beyond normal mouse control to also include multi-touch- and gesture support.
After […]

» 11 comments «
No
Qt
Qt Script
XML
SCXML
Posted by No'am
 in Qt, Qt Script, XML, SCXML
 on Sunday, June 21, 2009 @ 17:25

For those of you that enjoy writing relatively complex yet manageable apps without needing too much native code, the SCXML enabler that works on top of the Qt State Machine Framework is now active on public Gitorious, at http://qt.gitorious.org/qt-labs/scxml. We’re opening the repository after a few bug-fixes and improvements we found in other Git repositories […]

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