~oif-team/ubuntu/natty/qt4-x11/xi2.1

« back to all changes in this revision

Viewing changes to doc/src/qt4-intro.qdoc

  • Committer: Bazaar Package Importer
  • Author(s): Alessandro Ghersi
  • Date: 2009-11-02 18:30:08 UTC
  • mfrom: (1.2.2 upstream)
  • mto: (15.2.5 experimental)
  • mto: This revision was merged to the branch mainline in revision 88.
  • Revision ID: james.westby@ubuntu.com-20091102183008-b6a4gcs128mvfb3m
Tags: upstream-4.6.0~beta1
ImportĀ upstreamĀ versionĀ 4.6.0~beta1

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/****************************************************************************
2
2
**
3
3
** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
 
4
** All rights reserved.
4
5
** Contact: Nokia Corporation (qt-info@nokia.com)
5
6
**
6
7
** This file is part of the documentation of the Qt Toolkit.
7
8
**
8
9
** $QT_BEGIN_LICENSE:LGPL$
9
 
** Commercial Usage
10
 
** Licensees holding valid Qt Commercial licenses may use this file in
11
 
** accordance with the Qt Commercial License Agreement provided with the
12
 
** Software or, alternatively, in accordance with the terms contained in
13
 
** a written agreement between you and Nokia.
 
10
** No Commercial Usage
 
11
** This file contains pre-release code and may not be distributed.
 
12
** You may use this file in accordance with the terms and conditions
 
13
** contained in the Technology Preview License Agreement accompanying
 
14
** this package.
14
15
**
15
16
** GNU Lesser General Public License Usage
16
17
** Alternatively, this file may be used under the terms of the GNU Lesser
20
21
** ensure the GNU Lesser General Public License version 2.1 requirements
21
22
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
22
23
**
23
 
** In addition, as a special exception, Nokia gives you certain
24
 
** additional rights. These rights are described in the Nokia Qt LGPL
25
 
** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
26
 
** package.
27
 
**
28
 
** GNU General Public License Usage
29
 
** Alternatively, this file may be used under the terms of the GNU
30
 
** General Public License version 3.0 as published by the Free Software
31
 
** Foundation and appearing in the file LICENSE.GPL included in the
32
 
** packaging of this file.  Please review the following information to
33
 
** ensure the GNU General Public License version 3.0 requirements will be
34
 
** met: http://www.gnu.org/copyleft/gpl.html.
35
 
**
36
 
** If you are unsure which license is appropriate for your use, please
37
 
** contact the sales department at http://www.qtsoftware.com/contact.
 
24
** In addition, as a special exception, Nokia gives you certain additional
 
25
** rights.  These rights are described in the Nokia Qt LGPL Exception
 
26
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
 
27
**
 
28
** If you have questions regarding the use of this file, please contact
 
29
** Nokia at qt-info@nokia.com.
 
30
**
 
31
**
 
32
**
 
33
**
 
34
**
 
35
**
 
36
**
 
37
**
38
38
** $QT_END_LICENSE$
39
39
**
40
40
****************************************************************************/
78
78
 
79
79
    The following features have been added to Qt since the first release of Qt 4:
80
80
 
 
81
    In Qt 4.5:
 
82
    \list
 
83
    \o The WebKit browser engine included with Qt has been
 
84
       upgraded to the latest upstream (trunk) version of WebKit,
 
85
       bringing the latest features and improvements to Qt applications.
 
86
    \o Qt for Mac OS X has been substantially rewritten to use
 
87
       Apple's Cocoa API, enabling Qt applications to be deployed on
 
88
       64-bit Macintosh hardware.
 
89
    \o The QtXmlPatterns module has been extended to cover XSLT, a
 
90
       transformation language for XML documents.
 
91
    \o Qt Script introduced its debugger, 
 
92
       providing error reporting for scripts, and to let users track down
 
93
       bugs in their own scripts.
 
94
    \o Qt 4.5 includes support for writing rich text documents as
 
95
       OpenDocument files via the newly-introduced QTextDocumentWriter
 
96
       class.
 
97
    \o Qt Linguist can load and edit multiple translation
 
98
       files simultaneously.
 
99
    \o Support for ARGB top-level widgets (i.e., translucent
 
100
       windows).
 
101
    \endlist
 
102
 
81
103
    In Qt 4.4:
82
104
    \list
83
105
    \o \l{QtWebkit Module}{Qt WebKit integration}, making it possible for developers
87
109
    \o \l{QtXmlPatterns Module}{XQuery and XPath} support, providing facilities for
88
110
    XML processing beyond that supported by the QtXml module.
89
111
    \o Support for embedded widgets in \l{Graphics View} scenes.
90
 
    \o The \l{Threading and Concurrent Programming}{QtConcurrent framework} for
 
112
    \o The \l{Thread Support in Qt}{QtConcurrent framework} for
91
113
    concurrent programming using Qt paradigms and threading features.
92
114
    \o An \l{QtHelp Module}{improved help system} that can be used in conjunction
93
115
    with Qt Assistant or as an independent help resource manager.
162
184
    \endlist
163
185
 
164
186
    For more information about improvements in each Qt release, see
165
 
    the \l{http://www.qtsoftware.com/developer/changes/}
 
187
    the \l{http://qt.nokia.com/developer/changes/}
166
188
    {detailed lists of changes}.
167
189
 
168
190
    \section1 Significant Improvements
235
257
    for your project (using "DEFINES +=") on to moc, which has its own
236
258
    built-in C++ preprocessor.
237
259
 
238
 
    To compile code that uses .ui files, you will also need this line in
 
260
    To compile code that uses UI files, you will also need this line in
239
261
    the .pro file:
240
262
 
241
263
    \snippet doc/src/snippets/code/doc_src_qt4-intro.qdoc 2
435
457
*/
436
458
 
437
459
/*!
 
460
    \page qt4-6-intro.html
 
461
    \title What's New in Qt 4.6
 
462
 
 
463
    Qt 4.6 provides many improvements and enhancements over the
 
464
    previous releases in the Qt 4 series. This document covers the
 
465
    most important features in this release, separated by category.
 
466
 
 
467
\omit
 
468
    A comprehensive list of changes between Qt 4.5 and Qt 4.6 is
 
469
    included in the \c changes-4.6.0 file
 
470
    \l{http://qt.nokia.com/developer/changes/changes-4.6.0}{available
 
471
    online}. A \l{Known Issues in 4.6.0}{list of known issues}
 
472
    for this release is also available.
 
473
 
 
474
    Changes between this release and the previous release are provided
 
475
    in the \c{changes-4.6.0} file (also
 
476
    \l{http://qt.nokia.com/developer/changes/changes-4.6.0}{available online}).
 
477
\endomit
 
478
 
 
479
    A list of other Qt 4 features can be found on the \bold{\l{What's
 
480
    New in Qt 4}} page.
 
481
 
 
482
    \bold{Highlights}
 
483
 
 
484
    \tableofcontents
 
485
 
 
486
    \section1 Support for Symbian
 
487
 
 
488
    Qt 4.6 is the first release to include support for the Symbian
 
489
    platform, with integration into the S60 framework. The port to
 
490
    Symbian and S60 provides all functionality required to develop
 
491
    rich end-user applications for devices running S60 3.1 and
 
492
    later.
 
493
 
 
494
    \section1 Animation Framework
 
495
 
 
496
    The animation framework helps build highly animated,
 
497
    high-performance GUIs without the hassle of managing complex
 
498
    structures, timers, and easing curves, not to mention the large
 
499
    state graphs that all animated GUIs tend to be full of.
 
500
 
 
501
    The framework makes it easy to animate \l{QObject}s, including
 
502
    QWidgets, by allowing Qt properties to be animated. It also allows
 
503
    creating custom animations and interpolation functions. Graphics
 
504
    views are not left out; one can animate \l{QGraphicsWidget}s and
 
505
    new \l{QGraphicsObject}s which inherit from QGraphicsItem
 
506
    (and thereby enable properties).
 
507
 
 
508
    Animations are controlled using easing curves and can be grouped
 
509
    together. This enables animations of arbitrary complexity.
 
510
 
 
511
    The API is easy to grasp with functions such as start(), stop(),
 
512
    pause(), and currentTime(). Here is an image from one of the
 
513
    examples that come with the framework:
 
514
 
 
515
    \image whatsnewanimatedtiles.png
 
516
 
 
517
    The animation framework also plugs into the new Qt Statemachine by
 
518
    allowing an animation to be played when transitions are triggered.
 
519
    The state machine framework is introduced in 4.6 and is described
 
520
    below.
 
521
 
 
522
    See \l{The Animation Framework} documentation for more information.
 
523
 
 
524
    \section1 State Machine Framework
 
525
 
 
526
    The state machine framework provides a robust state chart
 
527
    implementation based on Harel statecharts and SCXML. Qt's API lets
 
528
    you construct such state graphs and execute them. The key benefits
 
529
    of a state machine are:
 
530
 
 
531
    \list
 
532
        \o Simplify complex application semantics.
 
533
        \o Use of states to reduce code bloat.
 
534
        \o Use states to improve maintainability. 
 
535
        \o Makes event-driven programming robust and more
 
536
           reusable.
 
537
    \endlist
 
538
 
 
539
    It is especially the last item here that makes using a state
 
540
    machine worthwhile. A key characteristic of event-driven systems
 
541
    (such as Qt applications) is that behavior often depends not only
 
542
    on the last or current event, but also the events that preceded
 
543
    it. With statecharts, this information is easy to express.
 
544
 
 
545
    The framework fits neatly into Qt by allowing transitions to
 
546
    trigger on signals and \l{QEvent}s. By inserting animations into
 
547
    the state machine, it is also easier to use the framework for
 
548
    animating GUIs, for instance.
 
549
    
 
550
    See \l{The State Machine Framework} documentation for more infromation.
 
551
 
 
552
    \section1 Multi-touch & Gestures
 
553
 
 
554
    The new multi-touch and gestures support enables user interaction
 
555
    with more than one finger, and combines sequential touch inputs to
 
556
    a 'gesture'.
 
557
 
 
558
    \image gestures.png
 
559
 
 
560
    The main benefits of this new functionality are:
 
561
 
 
562
    \list
 
563
        \o Allow users to interact with applications in better ways.
 
564
        \o Simplify finger-based interaction with UI components.
 
565
        \o Allowing common basic gestures and multi-touch
 
566
           gestures.
 
567
        \o Enable extensibility.
 
568
    \endlist
 
569
 
 
570
    See the QTouchEvent class documentation for more information. The
 
571
    Gesture framework API is still subject to change.
 
572
 
 
573
    \section1 DOM access API
 
574
 
 
575
    Web pages and XML both have very complex document object models.
 
576
    The W3C selector API provides a very simple way to access and
 
577
    manipulate such structures. This API makes it intuitive to access
 
578
    DOM, helps reuse CSS selector knowledge, and gives little
 
579
    maintenance or footprint overhead.
 
580
 
 
581
    \code
 
582
        QWebElement document = frame->documentElement();
 
583
        QList<QWebElement> allSpans = document.findAll("span");
 
584
        QList<QWebElement> introSpans = document.findAll("p.intro span");
 
585
    \endcode
 
586
 
 
587
    See the QWebElement class documentation for more information.
 
588
 
 
589
    \section1 Performance Optimizations
 
590
 
 
591
    As always, Qt continuously strive to optimize its performance.
 
592
    For this release, we have:
 
593
 
 
594
    \list
 
595
        \o Rewritten the QGraphicsView rendering algorithm.
 
596
        \o Made QPixmapCache support efficient Key datastructure.
 
597
        \o Reduced overhead in QNetworkAccessManager.
 
598
        \o Added the QContiguousCache class, which provides efficient caching of
 
599
           contiguous data.
 
600
        \o Added support for hardware-accelerated rendering through
 
601
        \l{OpenVG Rendering in Qt}{OpenVG}
 
602
        \o Removed Win9x support.
 
603
    \endlist
 
604
 
 
605
    \section1 Graphics Effects
 
606
 
 
607
    Effects can be used to alter the appearance of UI elements such as
 
608
    \l{QGraphicsItem}s and \l{QWidget}s. A range of standard effects such
 
609
    as blurring, colorizing or blooming is provided, and it is possible to
 
610
    implement custom effects.
 
611
 
 
612
    \table
 
613
    \row
 
614
    \o
 
615
    \o \img graphicseffect-plain.png
 
616
    \o
 
617
    \row
 
618
    \o \img graphicseffect-blur.png
 
619
    \o \img graphicseffect-colorize.png
 
620
    \o \img graphicseffect-bloom.png
 
621
    \endtable
 
622
 
 
623
    See the QGraphicsEffect class documentation for more information.
 
624
 
 
625
    \section1 XML Schema Validation
 
626
 
 
627
    The QtXmlPatterns module can now be used to validate schemas, either
 
628
    through C++ APIs in the Qt application, or using the xmlpatternsvalidator
 
629
    command line utility. The implementation of XML Schema Validation supports
 
630
    the specification version 1.0 in large parts.
 
631
    
 
632
    \img xml-schema.png
 
633
 
 
634
    See the \l{XML Processing} and QXmlSchema class documentation for more
 
635
    information.
 
636
 
 
637
    \section1 Qt3D enablers
 
638
 
 
639
    As more of Qt, and more of the applications built on Qt go 3D,
 
640
    API's should be provided to simplify this. Mainly, the new API
 
641
    aims to make it more easy to create 3D applications with OpenGL.
 
642
    It will also unify the Qt OpenGL codebase, and enable
 
643
    cross-platform 3D codebase.
 
644
 
 
645
    The main features of the Qt3D enablers are currently: Math
 
646
    primitives for matrix multiplication, vectors, quaternions
 
647
    (client-side), and API for vertex and fragment shaders, GLSL/ES.
 
648
    Future research will, among other things include stencils,
 
649
    scissors, vertex buffers and arrays, texture manipulation, and
 
650
    geometry shaders.
 
651
 
 
652
    \section1 Multimedia Services
 
653
 
 
654
    Qt 4.6 comes with new classes for handling audio. These classes
 
655
    provide low-level access to the system's audio system. By
 
656
    specifying the audio format (QAudioFormat) and supplying audio
 
657
    data through a QIODevice, you get direct access to the
 
658
    functionality of the sound device. The API also comes with
 
659
    functions to query audio devices for which audio formats they
 
660
    support.
 
661
 
 
662
    See the \l{QtMultimedia Module} documentation for more information.
 
663
 
 
664
    \section1 Classes, functions, and other items introduced in 4.6
 
665
 
 
666
    Links to classes, function, and other items that were added in
 
667
    4.6.
 
668
 
 
669
    \sincelist 4.6
 
670
 
 
671
*/
 
672
 
 
673
/*
438
674
    \page qt4-5-intro.html
439
675
    \title What's New in Qt 4.5
440
676
 
444
680
 
445
681
    A comprehensive list of changes between Qt 4.4 and Qt 4.5 is included
446
682
    in the \c changes-4.5.0 file
447
 
    \l{http://www.qtsoftware.com/developer/changes/changes-4.5.0}{available online}.
448
 
    A \l{Known Issues in 4.5.2}{list of known issues} for this release is also
 
683
    \l{http://qt.nokia.com/developer/changes/changes-4.5.0}{available online}.
 
684
    A \l{Known Issues in 4.6.0}{list of known issues} for this release is also
449
685
    available.
450
686
 
451
687
    Changes between this release and the previous release are provided
452
 
    in the \c{changes-4.5.2} file (also
453
 
    \l{http://www.qtsoftware.com/developer/changes/changes-4.5.2}{available online}).
 
688
    in the \c{changes-4.6.0} file (also
 
689
    \l{http://qt.nokia.com/developer/changes/changes-4.6.0}{available online}).
454
690
 
455
691
    A list of other Qt 4 features can be found on the
456
692
    \bold{\l{What's New in Qt 4}} page.
595
831
    these settings when you edit forms.
596
832
 
597
833
    More information about these improvements can be found in the
598
 
    \l{What's New in Qt Designer 4.5} overview.
 
834
    \l{What's New in Qt Designer 4.6} overview.
599
835
 
600
836
    \section1 Qt Linguist Improvements
601
837