Source

Target

Showing with 528 additions and 56 deletions
......@@ -284,7 +284,8 @@
\section1 Related Topics
\list
\li \l{New Classes and Functions in Qt 5}
\li \l{What's New in Qt 5.1}
\li \l{What's New in Qt 5.0}
\li \l{Porting Guide}
\endlist
*/
/****************************************************************************
**
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the documentation of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:FDL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and Digia. For licensing terms and
** conditions see http://qt.digia.com/licensing. For further information
** use the contact form at http://qt.digia.com/contact-us.
**
** GNU Free Documentation License Usage
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of
** this file. Please review the following information to ensure
** the GNU Free Documentation License version 1.3 requirements
** will be met: http://www.gnu.org/copyleft/fdl.html.
** $QT_END_LICENSE$
**
****************************************************************************/
/*!
\page qtmodules.html
\title All Modules
\brief A list of all modules in Qt 5.
\ingroup classlists
\brief Qt 5 consists of essential modules, add-on modules, and tools.
\section1 Qt Essentials
Qt essentials define the foundation of Qt on all platforms. They are
available on all supported development platforms and on the tested target
platforms. They will remain source and binary compatible during Qt 5.
Essential modules are general and useful for a majority of Qt applications.
A module that is used for a special purpose is considered an add-on module
even if it is available on all supported platforms.
The following table lists the Qt essentials:
\table 80%
\header
\li Module
\li Description
\row
\li \l{Qt Core}
\li Core non-graphical classes used by other modules.
\row
\li \l{Qt GUI}
\li Base classes for graphical user interface (GUI) components.
Includes OpenGL.
\row
\li \l{Qt Multimedia}
\li Classes for audio, video, radio and camera functionality.
\row
\li \l{Qt Multimedia Widgets}
\li Widget-based classes for implementing multimedia functionality.
\row
\li \l{Qt Network}
\li Classes to make network programming easier and more portable.
\row
\li \l{Qt QML}
\li Classes for QML and JavaScript languages.
\row
\li \l{Qt Quick}
\li A declarative framework for building highly dynamic applications
with custom user interfaces.
\row
\li \l{Qt Quick Controls}
\li Reusable Qt Quick based UI controls to create classic desktop-style
user interfaces
\row
\li \l{Qt Quick Layouts}
\li Layouts are items that are used to arrange Qt Quick 2 based items in
the user interface.
\row
\li \l{Qt SQL}
\li Classes for database integration using SQL.
\row
\li \l{Qt Test}
\li Classes for unit testing Qt applications and libraries.
\row
\li \l{Qt WebKit}
\li Classes for a WebKit2 based implementation and a new QML API.
See also Qt WebKit Widgets in the add-on modules.
\row
\li \l{Qt WebKit Widgets}
\li WebKit1 and QWidget-based classes from Qt 4.
\row
\li \l{Qt Widgets}
\li Classes to extend Qt GUI with C++ widgets.
\endtable
If you use \l qmake to build your projects, the QtCore and QtGui
modules are included by default. To link only against QtCore, add
the following line to your \c .pro file:
\snippet doc/src/snippets/code/doc_src_modules.pro 0
On Windows, if you do not use \l qmake
or other build tools such as \l{CMake Manual}{CMake}, you also need to link against
the \c qtmain library.
\section1 Qt Add-Ons
Qt add-on modules bring additional value for specific purposes. These
modules may only be available on some development platform for some target
platforms. Some of them are included in the Qt releases on particular
platforms. Each add-on module specifies its compatibility promise
separately.
The following table lists the Qt add-ons:
\table 80%
\header
\li Module
\li Development Platforms
\li Target Platforms
\li Description
\row
\li \l{Active Qt}
\li Windows
\li
\li Classes for applications which use ActiveX and COM
\row
\li \l{Qt Concurrent}
\li
\li
\li Classes for writing multi-threaded programs without using low-level
threading primitives.
\row
\li \l{Qt D-Bus}
\li Unix
\li
\li Classes for inter-process communication over the D-Bus protocol.
\row
\li \l{Qt Graphical Effects}
\li All
\li
\li Graphical effects for use with Qt Quick 2.
\row
\li \l{Qt Image Formats}
\li All
\li
\li Plugins for additional image formats: TIFF, MNG, TGA, WBMP.
\row
\li \l{Qt OpenGL}
\li
\li
\li OpenGL support classes.
\note Provided to ease porting from Qt 4.x. Please use the QOpenGL
classes in QtGui for new code.
\row
\li \l{Qt Print Support}
\li All
\li
\li Classes to make printing easier and more portable.
\row
\li \l{Qt Quick 1 Reference Documentation}{Qt Declarative}
\li All
\li
\li Qt Declarative is provided for \l{Qt 4.8 Reference Documentation}{Qt 4}
compatibility. The documentation is available through the Qt 4.8
\l{Qt Quick 1 Reference Documentation}{Qt Quick} documentation.
\row
\li \l{Qt Script}
\li All
\li
\li Classes for making Qt applications scriptable. Provided for Qt 4.x
compatibility. Please use the QJS* classes in the QtQml module for
new code.
\row
\li \l{Qt Script Tools}
\li All
\li
\li Additional components for applications that use Qt Script.
\row
\li \l{Qt Sensors}
\li All
\li \l{Android}, \l{BlackBerry}, \l{iOS}, and Mer.
\li Provides access to sensor hardware and motion gesture recognition.
\row
\li \l{Qt Serial Port}
\li All
\li \l{Support for Windows}{Windows}, \l{Support for Linux/X11}{Linux}, and \l{Support for Mac OS X}{Mac OS X}.
\li Provides access to hardware and virtual serial ports.
\row
\li \l{Qt SVG}
\li All
\li
\li Classes for displaying the contents of SVG files.
\row
\li \l{Qt X11 Extras}
\li All
\li \l{Support for Linux/X11}{Linux/X11}
\li Provides specific APIs for X11.
\row
\li \l{Qt XML}
\li
\li
\li C++ implementations of SAX and DOM.
\note Deprecated, please use QXmlStreamReader and QXmlStreamWriter
for new functionality.
\row
\li \l{Qt XML Patterns}
\li
\li
\li Support for XPath, XQuery, XSLT and XML schema validation.
\endtable
\section1 Qt Tools
Tools that are officially a part of Qt. The official tools run on all the
supported development platforms.
The following table lists the Qt tools:
\table 80%
\header
\li Tool
\li Description
\row
\li \l{Qt Designer}
\li Classes for extending \QD.
\row
\li \l{Qt Help}
\li Classes for online help.
\row
\li \l{Qt UI Tools}
\li Classes for UI tools.
\endtable
\sa {Class and Function Documentation}
*/
#! [0]
cmake_minimum_required(VERSION 2.8.9)
cmake_minimum_required(VERSION 2.8.11)
project(testproject)
......@@ -12,34 +12,34 @@ set(CMAKE_AUTOMOC ON)
find_package(Qt5Widgets)
# Tell CMake to create the helloworld executable
add_executable(helloworld main.cpp)
add_executable(helloworld WIN32 main.cpp)
# Use the Widgets module from Qt 5.
qt5_use_modules(helloworld Widgets)
target_link_libraries(helloworld Qt5::Widgets)
#! [0]
#! [1]
find_package(Qt5Core)
# Find the Widgets Sql and Network modules, and
# use them in helloworld.
qt5_use_modules(helloworld Widgets Sql Network)
get_target_property(QtCore_location Qt5::Core LOCATION)
#! [1]
#! [2]
find_package(Qt5Core)
get_target_property(QtCore_location Qt5::Core LOCATION)
#! [2]
#! [3]
find_package(Qt5Core)
set(CMAKE_CXX_FLAGS_COVERAGE "${CMAKE_CXX_FLAGS_RELEASE} -fprofile-arcs -ftest-coverage")
# set up a mapping so that the Release configuration for the Qt imported target is
# used in the COVERAGE CMake configuration.
set_target_properties(Qt5::Core PROPERTIES MAP_IMPORTED_CONFIG_COVERAGE "RELEASE")
#! [2]
#! [3]
find_package(Qt5Widgets)
add_executable(helloworld WIN32 main.cpp)
qt5_use_modules(helloworld Widgets)
#! [3]
#! [4]
......@@ -69,7 +69,7 @@ qt5_generate_moc(main.cpp main.moc)
add_executable(helloworld main.cpp main.moc)
#Link the helloworld executable to the Qt 5 widgets library.
target_link_libraries(${Qt5Widgets_LIBRARIES})
target_link_libraries(helloworld Qt5::Widgets)
#! [4]
#! [5]
......
......@@ -292,6 +292,7 @@ The following sections lists the API changes in each module and provides recomme
\list
\li The \l{QPageSetupDialog::PageSetupDialogOption} enum and the corresponding set and get functions, \c{QPageSetupDialog::options()}
and \c{QPageSetupDialog::setOptions()} are removed.
\li Support for printing PostScript files has been removed.
\endlist
\section1 Changes to Qt Network
......
......@@ -54,17 +54,16 @@ Animation and transition effects are a first class concept in Qt Quick and
visual effects can be supplemented through specialized components for particle
and shader effects.
\section2 Important Concepts in Qt Quick
\section2 Important UI Topics for QML Applications
\list
\li \l{qtquick-visualcanvas-topic.html}{The Visual Canvas}
\li \l{qtquick-input-topic.html}{User Input}
\li \l{qtquick-positioning-topic.html}{Positioning}
\li \l{qtquick-statesanimations-topic.html}{States, Transitions and Animations}
\li \l{qtquick-modelviewsdata-topic.html}{Data - Models, Views and Data Storage}
\li \l{qtquick-effects-topic.html}{Particles and Graphical Effects}
\li \l{qtquick-convenience-topic.html}{Convenience Types}
\li \l{qtquick-internationalization.html}{Internationalization and Localization}
\li \l{qtquick-usecase-visual.html}{Visual types in QML}
\li \l{qtquick-usecase-userinput.html}{Responding to User Input in QML}
\li \l{qtquick-usecase-animations.html}{Animations in QML}
\li \l{qtquick-usecase-text.html}{Displaying Text in QML}
\li \l{qtquick-usecase-layouts.html}{Layouts in QML}
\li \l{qtquick-usecase-styling.html}{Style and Theme Support}
\li \l{qtquick-usecase-integratingjs.html}{Integrating JavaScript in QML}
\endlist
\section2 Graphical Controls
......@@ -100,17 +99,23 @@ type applications.
\li \l{Internationalization with Qt}{Internationalization}
\endlist
\section1 Qt WebKit
\section1 Displaying Web Content
\l {QtWebKit} is a web content rendering engine based on the open source \l {http://www.webkit.org}{WebKit}
project featuring broad support for standard web technologies.
The Qt WebKit module provides integration with both the above Qt technologies,
a \l {Qt Quick} WebView component as well as the Qt WebKit Widgets classes to render
and interact with web content.
The main difference in the underlying technology of the Qt Quick WebView component is
that it utilizes a multi-process architecture (WebKit2) with a separate web rendering
process whereas the Qt WebKit Widgets use a single-process architecture.
Qt provides a \l{http://www.webkit.org/}{WebKit}-based layout engine
with support for a wide range of standard web techologies such as HTML, CSS and
JavaScript, that make it possible to embed content from the World Wide Web into
your Qt application. Qt features both WebKit-based QML and C++ APIs.
\l{Qt WebKit} displays web content through the \l WebView QML type while the
\l{Qt WebKit Widgets} features a C++ API to render and interact with web
content.
The main difference between the two APIs is that WebView utilizes a multi-
process architecture, \l{http://trac.webkit.org/wiki/WebKit2}{WebKit2}, with a
separate web rendering process. The C++ API uses the previous version of WebKit,
which has a single-process architecture.
See also \l {Integrating Web Content}.
......@@ -177,8 +182,8 @@ choose the best suited tool for the job.
\li
\li Qt Widgets provide all the bells and whistles, developed over two
decades, needed for building standard industry type applications.
QtWebKit Widgets provide widgets and additional classes to render and
interact with web content.
Qt WebKit Widgets provide widgets and additional classes to render
and interact with web content.
\row
\li Model/View programming
\li (X)
......
......@@ -30,29 +30,38 @@
\title Integrating Web Content
\brief Qt's WebKit integration
The QtWebKit module provides a \l {http://www.webkit.org/}{WebKit}-based layout engine with support for a wide range of
standard web techologies such as HTML, CSS and JavaScript, that make it possible to embed content from the World Wide Web
into your Qt application.
Qt provides a \l {http://www.webkit.org/}{WebKit}-based layout engine
with support for a wide range of standard web techologies such as HTML, CSS and
JavaScript, that make it possible to embed content from the World Wide Web into
your Qt application. Qt features both WebKit-based QML and C++ APIs.
QtWebKit provides the QtWebKit Widgets C++ classes to integrate web content into your QWidget and QGraphicsView based application.
QtWebKit also includes a \l {WebView} QML component for embedding into \l {Qt Quick}.
\section1 QtWebKit Widgets integration
\section1 WebKit for QML Applications
The QtWebKit Widgets module provides a number of different classes with a feature-rich C++ API that facilitates loading, viewing
and editing web documents (\l {QGraphicsWebView}, \l {QWebView}, \l {QWebPage}, \l {QWebFrame}) or traversing the document model
represented by a tree structure of \l {http://www.w3.org/DOM/}{DOM} elements (\l {QWebElement}).
The \l{WebKit in Qt}{QtWebKit Widgets} classes provide traditional in-process rendering of web content.
\l{Qt WebKit} allows WebKit 2 functionality in QML applications by
importing the \l{WebView} QML type. \l WebView has a minimalistic QML API for
web content visualization. While it is not as feature-rich as the C++ API of the
widget classes, it has multi-touch support and employs a multi-process
architecture to render web content in a separate helper process (QtWebProcess).
WebView makes it possible to interact with content using touch gestures such as
panning with inertia (flick), pinch-zoom, tap and double- tap-to-zoom. The
underlying split-process model (\l
{http://trac.webkit.org/wiki/WebKit2}{WebKit2}) assures smooth animations in the
embedding application (UI process) as well as increases stability.
\section1 QtWebKit Qt Quick integration
These pages have more information about QML:
\list
\l \l{Qt Webkit Examples}
\l \l{QML Application Developer Resources}
\endlist
The QtWebKit module can be integrated into Qt Quick by importing the \l{WebView} QML component. The WebView item has a minimalistic QML API
for web content visualization which is not as feature-rich as the C++ API of the widget classes but it has out-of-the-box multi-touch
support and employs a multi-process architecture to render web content in a separate helper process (QtWebProcess).
The WebView makes it possible to interact with content using touch gestures such as panning with inertia (flick), pinch-zoom,
tap and double-tap-to-zoom. The underlying split-process model (\l {http://trac.webkit.org/wiki/WebKit2}{WebKit2}) assures
smooth animations in the embedding application (UI process) as well as increases stability.
\section1 Qt WebKit Widgets
The \l{Qt WebKit Widgets} module provides a feature-rich C++ API that
facilitates loading, viewing, and editing web documents. Qt WebKit Widgets
provides facilities for rendering of HyperText Markup Language (HTML),
Extensible HyperText Markup Language (XHTML) and Scalable Vector Graphics (SVG)
documents, styled using Cascading Style Sheets (CSS) and scripted with
JavaScript.
Examples demonstrating how to embed web content into a Qt application can be found in the qtwebkit-examples-and-demos module.
Specifically the QML examples flickrview and youtubeview in this module show how to integrate web content into a Qt Quick application.
*/
......@@ -26,9 +26,9 @@
****************************************************************************/
/*!
\page whatsnew.html
\title New Classes and Functions in Qt 5
\brief Lists the new features in Qt 5
\page whatsnew50.html
\title What's New in Qt 5.0
\brief Lists the new features in Qt 5.0
\section1 Qt Core Changes
\section2 QStandardPaths
......
/****************************************************************************
**
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the documentation of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:FDL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and Digia. For licensing terms and
** conditions see http://qt.digia.com/licensing. For further information
** use the contact form at http://qt.digia.com/contact-us.
**
** GNU Free Documentation License Usage
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of
** this file. Please review the following information to ensure
** the GNU Free Documentation License version 1.3 requirements
** will be met: http://www.gnu.org/copyleft/fdl.html.
** $QT_END_LICENSE$
**
****************************************************************************/
/*!
\page whatsnew51.html
\title What's New in Qt 5.1
\brief Lists the new features in Qt 5.1
Qt 5.1 introduces many changes for helping developers continue creating
wonderful applications, easily and with less code. As well in this release,
focus is placed on bug fixing and new features, while maintaining
compatibility with Qt 5.0.
This page is a summary of new features. For specific API changes, the
\l{List of API Changes} section contains links to new and obsolete classes.
\section1 New Modules
New modules add more functionality for developers to use on various
platforms.
\list
\li \l{Qt Quick Controls} - a set of reusable UI controls. Qt 5.1
targets desktop platforms, while future releases will include more features
useful on touch devices.
\li \l{Qt Quick Layouts} - provides layouts for \l{Qt Quick}
\li \l{Qt X11 Extras} - adds platform specific APIs for X11
\li \l{Qt Sensors} - provides access to sensor hardware and motion gesture
recognition both via QML and C++ interfaces. Supports \l Android,
BlackBerry, \l iOS, and Mer platforms.
\li \l{Qt Serial Port} - provides an interface for hardware and virtual
serial ports
\endlist
The \l{All Modules} page contains a list of all modules in Qt 5.1.
\section1 New Supported Platforms
Qt 5.1 introduces support for following new platforms with technology
preview status:
\list
\li\l{Android}{Qt for Android} (Technology Preview)
\li\l{iOS}{Qt for iOS} (Technology Preview)
\endlist
\section1 Summary of Changes
\section2 moc
\list
\li New keyword in \l Q_PROPERTY(), \c MEMBER, lets you bind a property
to a class member without requiring to have a getter or a setter.
\endlist
\section2 qmake
\list
\li On Windows: Added support for specifying application icon
(via \c{RC_ICONS}).
\endlist
\section2 Qt Core
\list
\li Added support for SHA3 to QCryptographicHash
\li Added toInt(), toUInt(), and similar functions to QStringRef
\li A new threadsafe initialization of global statics through refactored
\l Q_GLOBAL_STATIC().
\li A new class, QLockFile, provides locking between processes using a
file. This lock enables applications to check that there is only one
instance of it running.
\li A new class, QSaveFile, provides transaction such as file writing.
\endlist
\section2 Qt GUI
\list
\li Support for embedding and reparenting of windows created from other
processes, via QWindow::fromWinId().
\li QWidget::createWindowContainer() adds the capability to embed
QWindow instances, such as QQuickView or a QWindow using
QOpenGLContext, into a QWidget hierarchy.
\li Support for kerning advances in QRawFont::advancesForGlyphIndexes.
\li QImageReader and QImageWriter adds the ability to report supported
MimeTypes.
\li New input method plugin, QComposeInputContext.
\li New GTK+ 2.x platformtheme plugin that provides native file, font,
and color dialogs.
\li New class, QOpenGLContext::versionFunctions(), provides access to
all OpenGL functions.
\li New QOpenGLTimerQuery and QOpenGLTimeMonitor classes.
\li New QOpenGLDebugLogger class expose KHR_debug extension for easy debugging.
\li Added support for Geometry, Tessellation Control,
Tessellation Evaluation, and Compute shaders to QOpenGLShader and
QOpenGLShaderProgram.
\li New QOpenGLVertexArrayObject class.
\endlist
\section2 Qt Network
\list
\li New encrypted() signal to QNetworkAccessManager and QNetworkReply so
that applications can perform additional checks on the certificate
chain.
\li Support for sending intermediate certificates when QSslSocket is
used as a server and when using client certificates.
\li Support for SSL session reuse allowing much faster connections to
servers.
\endlist
\section2 Qt QML
\list
\li New QQmlApplicationEngine convenience class for QML applications.
\li New Instantiatior type for generic, dynamic object creation.
\li New \l{QtQml.Models} module containing \l ListElement, \l ListModel,
\l DelegateModel, \l DelegateModelGroup, and \l ObjectModel.
\li New properties for \l Qt.application: arguments, name, and version.
\endlist
\section2 Qt Quick
\list
\li New threaded render loop for Mac, Linux, and Embedded.
\li New render loop for windows for smoother animations.
\li New \l QtQuick.Dialogs module with \l FileDialog and
\l ColorDialog types.
\li New \l Window properties: activeFocusItem, minimumWidth,
minimumHeight, maximumWidth, maximumHeight, visibility,
contentOrientation, and opacity.
\li New \l Item property: activeFocusOnTab.
\li New \l Grid properties: horizontalAlignment, verticalAlignment, and
effectiveHorizontalAlignment.
\li New \l TextEdit properties: selectByKeyboard and textDocument
\li A \l Window declared inside another Window or \l Item will
automatically be transient for (centered upon) the outer window.
\endlist
\section2 Qt WebKit
\list
\li JavaScript JIT on Windows 64 bit.
\li Improved font rendering, kerning enabled by default.
\li Improved garbage collection.
\li Support for WOFF fonts.
\li Support for WebGL without accelerated compositing.
\li Support for GStreamer 1.0.
\li Improved perceived page load performance and support for Link
prefetch.
\endlist
\section2 Qt Widgets
\list
\li Added property toolTipsVisible in QMenu.
\endlist
\section2 Qt Creator Compatibility
\l{Qt Creator Manual}{Qt Creator} 2.7 complements this Qt release
with the most prominent new features:
\list
\li Improved C++11 code editing support
\li \l{Qt Creator: Using Qt Quick Designer}{Qt Quick Designer} with full support for Qt Quick
\li Android \l{Qt Creator: Deploying Applications to Android Devices}{development target}
\li Experimental QBS and diff integration
\endlist
\section2 Other New Features
\list
\li Restored support for static Qt builds
\endlist
\section1 List of API Changes
The pages below contain a list of API changes in Qt 5.1
\list
\li \l{New Classes and Functions in Qt 5.1}
\li \l{Obsolete Classes}
\endlist
*/
/*!
\page newclasses51.html
\title New Classes and Functions in Qt 5.1
\brief A list of new C++ APIs in Qt 5.1
This page contains a comprehensive list of all new classes and functions
introduced in Qt 5.1.
\sincelist 5.1
*/