Jump to content

Qt5/Documentation/OverviewStructure

From KDE Community Wiki

See Qt5/Documentation/OverviewClassification for a classification of existing documentation pages based on this structure.

Qt 5 Documentation Landing page

The Qt 5 documentation landing page consists of an Introduction section at the top, plus three vertical sections, namely "References", "Examples", and "Overviews".

Introduction

Sub-parts:

  • Sales pitch, aka "What is Qt", high level introduction
  • 10-15 line snippet of QML
  • Link to SDK
  • Getting started, link to Hello Word example (QML? Widgets? Both?) (What about GraphicsScene and Console?)
  • What's new in Qt 5
  • Licensing / legal information

References

This section contains links to pages listing all modules, all C++ classes, and all QML components. Maybe a page listing manuals, like the qmake manual etc, + tools.

Examples

Waiting for example project.

Overviews

This section / page maps and outlines the topics covered in Qt 5 documentation. The most important topics can be listed on the documentation landing page.

Qt Topics and Aspects

Topics in this context are the aspects of applications that developers are concerned with. These topics involve several Qt modules and should reside in qt5/qtdoc repository. These overviews tie in the relevant features provided by the relevant modules. The emphasis is on functionality, not the module. This means that we should assume that the developer is not heavily concerned about the difference between the modules or the Essential/Add-On distinction. They simply import which classes or QML types they wish.

For example, the SQL Programming article is linked _both_ from the Qt SQL landing page _and_ the SQL section of the "Data Structure and Storage" topic page. Readers who know which module to read will go to the Qt SQL landing page and find the article, but people who are concerned about the data storage options will find the page from the topic page. The first six of these goes in the front page. All of them are listed in the "overviews" landing page.

Possible list of topics:

  • Application Development (tools and Qt Creator)
  • User Interfaces
  • Core fundamentals (IPC, containers, signals/slots, properties, meta-object, and so on.)
  • Data Structure and Storage
  • Multimedia
  • Networking and Connectivity


  • Graphics
  • Scripting
  • Web applications
  • Testing (UI testing, debugging)
  • Add-ons (Contacts, Sensors, Location, Qt 3D etc)
  • Porting guide from Qt 4?

Feature Overviews

A feature is what Qt 5 offers. For examples, QML is an offering and requires an overview or some sort of documentation that connects all the relevant material together. Different topics have various feature overviews. These feature overviews may be specific to a Qt module and may reside in the module's repository.

"Application Development (tools and Qt Creator)" Topic Page

  • SDK
  • Creator
  • Linguist
  • Qmake

"Graphics" Topic Page

Graphics Stack - about Qt's graphic stack and the processes involved

  • 2D graphics
  • enablers
  • painting
  • math classes
  • raster
  • rendering
  • OpenGL

"User Interface" Topic Page

A page describing the UI options in Qt 5. This page includes links to the overviews from various repositories and modules.

A list of sections in this topic page (with links to the feature overviews):

  • QML- talks about "declarative" and the use of JavaScript to provide "highly dynamic interfaces".
  • Widgets -what can be done with widgets such as layouts, themes, platform implementation.
  • Web Interfaces - about CSS, HTML, WebView, and so on.
  • Model/View programming
  • Links to guides on using Qt Creator for designing widget- and QML-based UIs?
  • Animation framework?
  • Accessibility
  • Drag and drop (is this under Widgets or do we support it in QML?)
  • Rich text engines?
    • QTextDocument in QML and Widgets
    • WebKit
  • I18N

"Data Structure and Storage" Topic Page

A page describing the data storage options in Qt 5. This page includes links to the overviews from various repositories and modules.

A list of sections in this topic page (with links to the feature overviews):

  • Containers
  • Saving and Loading Data (maybe about QIODevice, QTextStream, QDataStream and QFile)
  • XML
  • SQL and related database APIs
  • JavaScript Storage (available from Qt WebKit and Qt Quick)
  • QSettings
  • Qt resources?

"Multimedia" Topic Page

A page describing the multimedia story in Qt 5. This page includes links to the overviews from various repositories and modules.

A list of sections in this topic page (with links to the feature overviews):

  • Backend/engine
  • Supported platforms, media, codecs, and so on.
  • Audio API
  • Video API
  • Camera API
  • Radio API
  • Printing API?

Candidate: Qt Multimedia Overview (Maybe renamed to "Multimedia in Qt"?)

"Connectivity and Networking" Topic Page

A page describing the connectivity and networking offering in Qt 5. This can mean communication between the same application, inside the application, to the operating system, or through the internet or bluetooth.

A list of sections in this topic page (with links to the feature overviews):

  • TCP/IP
  • Bluetooth
  • Bearer Management
  • QNetworkAccessManager
  • Network transparency in QML
  • WebKit?

"Core fundamentals" Topic Page

A list of topics in this topic page:

  • IPC
  • Threading
  • QProcess
  • Containers
  • Events
  • State Machine Framework?
  • Object ownership model
  • QString / Unicode
  • Text codecs
  • Meta-object
    • Signals and slots
    • Property system
    • Meta-object and the moc
    • The meta-object in QML
  • QPA
    • Wayland
    • Platform specific development
  • Plugins

"Scripting" Topic Page

A list of topics in this topic page:

  • QtScript
  • QJSEngine / QJSValue etc
  • QQmlEngine, link to a guide on using QML for non-graphical purposes if such a thing makes sense?
  • Something about web / JavaScript ?