diff options
Diffstat (limited to 'src/gui/doc/src')
-rw-r--r-- | src/gui/doc/src/coordsys.qdoc | 35 | ||||
-rw-r--r-- | src/gui/doc/src/dnd.qdoc | 14 | ||||
-rw-r--r-- | src/gui/doc/src/external-resources.qdoc | 23 | ||||
-rw-r--r-- | src/gui/doc/src/includes/qt-colors.qdocinc | 21 | ||||
-rw-r--r-- | src/gui/doc/src/includes/svg-colors.qdocinc | 148 | ||||
-rw-r--r-- | src/gui/doc/src/qt6-changes.qdoc | 36 | ||||
-rw-r--r-- | src/gui/doc/src/qtgui-overview.qdoc | 85 | ||||
-rw-r--r-- | src/gui/doc/src/qtgui.qdoc | 19 | ||||
-rw-r--r-- | src/gui/doc/src/richtext.qdoc | 9 |
9 files changed, 352 insertions, 38 deletions
diff --git a/src/gui/doc/src/coordsys.qdoc b/src/gui/doc/src/coordsys.qdoc index eb39239e37..087916635b 100644 --- a/src/gui/doc/src/coordsys.qdoc +++ b/src/gui/doc/src/coordsys.qdoc @@ -213,11 +213,11 @@ \row \li {2,1} - \snippet analogclock/main.cpp 1 + \snippet ../widgets/widgets/analogclock/analogclock.cpp 9 We translate the coordinate system so that point (0, 0) is in the widget's center, instead of being at the top-left corner. We also - scale the system by \c side / 100, where \c side is either the + scale the system by \c side / 200, where \c side is either the widget's width or the height, whichever is shortest. We want the clock to be square, even if the device isn't. @@ -227,7 +227,7 @@ See also the \l {Window-Viewport Conversion} section. - \snippet analogclock/main.cpp 2 + \snippet ../widgets/widgets/analogclock/analogclock.cpp 18 We draw the clock's hour hand by rotating the coordinate system and calling QPainter::drawConvexPolygon(). Thank's to the @@ -235,26 +235,35 @@ The polygon is specified as an array of alternating \e x, \e y values, stored in the \c hourHand static variable (defined at the - beginning of the function), which corresponds to the four points - (2, 0), (0, 2), (-2, 0), and (0, -25). + beginning of the function), which corresponds to the three points + (7, 8), (-7, 8), (0, -40). The calls to QPainter::save() and QPainter::restore() surrounding the code guarantees that the code that follows won't be disturbed by the transformations we've used. - \snippet analogclock/main.cpp 3 + \snippet ../widgets/widgets/analogclock/analogclock.cpp 21 + + After that, we draw the hour markers for the clock face, which + consists of twelve short lines at 30-degree intervals. When that + loop is done, the painter has been rotated a full circle back to + its original state, so we don't need to save and restore the state. + + \snippet ../widgets/widgets/analogclock/analogclock.cpp 24 We do the same for the clock's minute hand, which is defined by - the four points (1, 0), (0, 1), (-1, 0), and (0, -40). These + the three points (7, 8), (-7, 8), (0, -70). These coordinates specify a hand that is thinner and longer than the minute hand. - \snippet analogclock/main.cpp 4 + \snippet ../widgets/widgets/analogclock/analogclock.cpp 27 - Finally, we draw the clock face, which consists of twelve short - lines at 30-degree intervals. At the end of that, the painter is - rotated in a way which isn't very useful, but we're done with - painting so that doesn't matter. + Finally, we draw the minute markers for the clock face, which + consists of sixty short lines at 6-degree intervals. We skip every + fifth minute marker because we don't want to draw over the hour + markers. At the end of that, the painter is rotated in a way which + isn't very useful, but we're done with painting so that doesn't + matter. \endtable For more information about the transformation matrix, see the @@ -422,5 +431,5 @@ \endtable \endomit - \sa {Analog Clock Window Example} + \sa {Analog Clock} */ diff --git a/src/gui/doc/src/dnd.qdoc b/src/gui/doc/src/dnd.qdoc index a8c5b8437c..7a756b304e 100644 --- a/src/gui/doc/src/dnd.qdoc +++ b/src/gui/doc/src/dnd.qdoc @@ -2,6 +2,7 @@ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only /*! + \keyword Drag and Drop in Qt \page dnd.html \title Drag and Drop \brief An overview of the drag and drop system provided by Qt. @@ -334,7 +335,9 @@ For example, we can copy the contents of a QLineEdit to the clipboard with the following code: - \snippet ../widgets/widgets/charactermap/mainwindow.cpp 11 + \code + QGuiApplication::clipboard()->setText(lineEdit->text(), QClipboard::Clipboard); + \endcode Data with different MIME types can also be put on the clipboard. Construct a QMimeData object and set data with setData() function in @@ -363,8 +366,6 @@ \li \l{draganddrop/draggableicons}{Draggable Icons} \li \l{draganddrop/draggabletext}{Draggable Text} \li \l{draganddrop/dropsite}{Drop Site} - \li \l{draganddrop/fridgemagnets}{Fridge Magnets} - \li \l{draganddrop/puzzle}{Drag and Drop Puzzle} \endlist \section1 Interoperating with Other Applications @@ -375,11 +376,10 @@ Cocoa Drag Manager. On X11, XDND uses MIME, so no translation is necessary. The Qt API is the same regardless of the platform. On Windows, MIME-aware applications can communicate by using clipboard format names that are MIME - types. Already some Windows applications use MIME naming conventions for + types. Some Windows applications already use MIME naming conventions for their clipboard formats. Custom classes for translating proprietary clipboard formats can be - registered by reimplementing QWinMime on Windows or - QMacPasteboardMime on \macos. - + registered by reimplementing QWindowsMimeConverter on Windows or + QUtiMimeConverter on \macos. */ diff --git a/src/gui/doc/src/external-resources.qdoc b/src/gui/doc/src/external-resources.qdoc index a02a9ddbf9..16bca2475d 100644 --- a/src/gui/doc/src/external-resources.qdoc +++ b/src/gui/doc/src/external-resources.qdoc @@ -8,7 +8,7 @@ */ /*! - \externalpage http://www.linux-foundation.org/en/Accessibility/IAccessible2 + \externalpage https://accessibility.linuxfoundation.org/a11yspecs/ia2/docs/html/index.html \title IAccessible2 Specification */ @@ -29,15 +29,24 @@ /*! \externalpage https://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html - \title Icon Theme Specification + \title Freedesktop Icon Theme Specification */ /*! + \externalpage https://specifications.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html + \title Freedesktop Icon Naming Specification +*/ +/*! \externalpage https://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html#directory_layout \title Icon Theme Specification - Directory Layout */ /*! + \externalpage https://freedesktop.org/ + \title Freedesktop +*/ + +/*! \externalpage https://www.khronos.org/vulkan/ \title Vulkan */ @@ -46,3 +55,13 @@ \externalpage https://www.lunarg.com/vulkan-sdk/ \title LunarG Vulkan SDK */ + +/*! + \externalpage https://developer.android.com/reference/androidx/core/content/FileProvider + \title Android: FileProvider +*/ + +/*! + \externalpage https://developer.android.com/training/secure-file-sharing/setup-sharing.html + \title Android: Setting up file sharing +*/ diff --git a/src/gui/doc/src/includes/qt-colors.qdocinc b/src/gui/doc/src/includes/qt-colors.qdocinc index 4c082323b6..d98c0a908a 100644 --- a/src/gui/doc/src/includes/qt-colors.qdocinc +++ b/src/gui/doc/src/includes/qt-colors.qdocinc @@ -3,84 +3,105 @@ \li Name \li Hex \li Color + \row \li Color0 \li #000000 \li \svgcolor {#000000} + \row \li Color1 \li #ffffff \li \svgcolor {#ffffff} + \row \li Black \li #000000 \li \svgcolor {#000000} + \row \li White \li #ffffff \li \svgcolor {#ffffff} + \row \li DarkGray \li #808080 \li \svgcolor {#808080} + \row \li Gray \li #a0a0a4 \li \svgcolor {#a0a0a4} + \row \li LightGray \li #c0c0c0 \li \svgcolor {#c0c0c0} + \row \li Red \li #ff0000 \li \svgcolor {#ff0000} + \row \li Green \li #00ff00 \li \svgcolor {#00ff00} + \row \li Blue \li #0000ff \li \svgcolor {#0000ff} + \row \li Cyan \li #00ffff \li \svgcolor {#00ffff} + \row \li Magenta \li #ff00ff \li \svgcolor {#ff00ff} + \row \li Yellow \li #ffff00 \li \svgcolor {#ffff00} + \row \li DarkRed \li #800000 \li \svgcolor {#800000} + \row \li DarkGreen \li #008000 \li \svgcolor {#008000} + \row \li DarkBlue \li #000080 \li \svgcolor {#000080} + \row \li DarkCyan \li #008080 \li \svgcolor {#008080} + \row \li DarkMagenta \li #800080 \li \svgcolor {#800080} + \row \li DarkYellow \li #808000 \li \svgcolor {#808000} + \row \li Transparent \li #00000000 \li (transparent) + \endtable diff --git a/src/gui/doc/src/includes/svg-colors.qdocinc b/src/gui/doc/src/includes/svg-colors.qdocinc index 4e5fb56d5e..c28cbabbf7 100644 --- a/src/gui/doc/src/includes/svg-colors.qdocinc +++ b/src/gui/doc/src/includes/svg-colors.qdocinc @@ -3,592 +3,740 @@ \li Name \li Hex \li Color + \row \li aliceblue \li #f0f8ff \li \svgcolor {#f0f8ff} + \row \li antiquewhite \li #faebd7 \li \svgcolor {#faebd7} + \row \li aqua \li #00ffff \li \svgcolor {#00ffff} + \row \li aquamarine \li #7fffd4 \li \svgcolor {#7fffd4} + \row \li azure \li #f0ffff \li \svgcolor {#f0ffff} + \row \li beige \li #f5f5dc \li \svgcolor {#f5f5dc} + \row \li bisque \li #ffe4c4 \li \svgcolor {#ffe4c4} + \row \li black \li #000000 \li \svgcolor {#000000} + \row \li blanchedalmond \li #ffebcd \li \svgcolor {#ffebcd} + \row \li blue \li #0000ff \li \svgcolor {#0000ff} + \row \li blueviolet \li #8a2be2 \li \svgcolor {#8a2be2} + \row \li brown \li #a52a2a \li \svgcolor {#a52a2a} + \row \li burlywood \li #deb887 \li \svgcolor {#deb887} + \row \li cadetblue \li #5f9ea0 \li \svgcolor {#5f9ea0} + \row \li chartreuse \li #7fff00 \li \svgcolor {#7fff00} + \row \li chocolate \li #d2691e \li \svgcolor {#d2691e} + \row \li coral \li #ff7f50 \li \svgcolor {#ff7f50} + \row \li cornflowerblue \li #6495ed \li \svgcolor {#6495ed} + \row \li cornsilk \li #fff8dc \li \svgcolor {#fff8dc} + \row \li crimson \li #dc143c \li \svgcolor {#dc143c} + \row \li cyan \li #00ffff \li \svgcolor {#00ffff} + \row \li darkblue \li #00008b \li \svgcolor {#00008b} + \row \li darkcyan \li #008b8b \li \svgcolor {#008b8b} + \row \li darkgoldenrod \li #b8860b \li \svgcolor {#b8860b} + \row \li darkgray \li #a9a9a9 \li \svgcolor {#a9a9a9} + \row \li darkgreen \li #006400 \li \svgcolor {#006400} + \row \li darkgrey \li #a9a9a9 \li \svgcolor {#a9a9a9} + \row \li darkkhaki \li #bdb76b \li \svgcolor {#bdb76b} + \row \li darkmagenta \li #8b008b \li \svgcolor {#8b008b} + \row \li darkolivegreen \li #556b2f \li \svgcolor {#556b2f} + \row \li darkorange \li #ff8c00 \li \svgcolor {#ff8c00} + \row \li darkorchid \li #9932cc \li \svgcolor {#9932cc} + \row \li darkred \li #8b0000 \li \svgcolor {#8b0000} + \row \li darksalmon \li #e9967a \li \svgcolor {#e9967a} + \row \li darkseagreen \li #8fbc8f \li \svgcolor {#8fbc8f} + \row \li darkslateblue \li #483d8b \li \svgcolor {#483d8b} + \row \li darkslategray \li #2f4f4f \li \svgcolor {#2f4f4f} + \row \li darkslategrey \li #2f4f4f \li \svgcolor {#2f4f4f} + \row \li darkturquoise \li #00ced1 \li \svgcolor {#00ced1} + \row \li darkviolet \li #9400d3 \li \svgcolor {#9400d3} + \row \li deeppink \li #ff1493 \li \svgcolor {#ff1493} + \row \li deepskyblue \li #00bfff \li \svgcolor {#00bfff} + \row \li dimgray \li #696969 \li \svgcolor {#696969} + \row \li dimgrey \li #696969 \li \svgcolor {#696969} + \row \li dodgerblue \li #1e90ff \li \svgcolor {#1e90ff} + \row \li firebrick \li #b22222 \li \svgcolor {#b22222} + \row \li floralwhite \li #fffaf0 \li \svgcolor {#fffaf0} + \row \li forestgreen \li #228b22 \li \svgcolor {#228b22} + \row \li fuchsia \li #ff00ff \li \svgcolor {#ff00ff} + \row \li gainsboro \li #dcdcdc \li \svgcolor {#dcdcdc} + \row \li ghostwhite \li #f8f8ff \li \svgcolor {#f8f8ff} + \row \li gold \li #ffd700 \li \svgcolor {#ffd700} + \row \li goldenrod \li #daa520 \li \svgcolor {#daa520} + \row \li gray \li #808080 \li \svgcolor {#808080} + \row \li grey \li #808080 \li \svgcolor {#808080} + \row \li green \li #008000 \li \svgcolor {#008000} + \row \li greenyellow \li #adff2f \li \svgcolor {#adff2f} + \row \li honeydew \li #f0fff0 \li \svgcolor {#f0fff0} + \row \li hotpink \li #ff69b4 \li \svgcolor {#ff69b4} + \row \li indianred \li #cd5c5c \li \svgcolor {#cd5c5c} + \row \li indigo \li #4b0082 \li \svgcolor {#4b0082} + \row \li ivory \li #fffff0 \li \svgcolor {#fffff0} + \row \li khaki \li #f0e68c \li \svgcolor {#f0e68c} + \row \li lavender \li #e6e6fa \li \svgcolor {#e6e6fa} + \row \li lavenderblush \li #fff0f5 \li \svgcolor {#fff0f5} + \row \li lawngreen \li #7cfc00 \li \svgcolor {#7cfc00} + \row \li lemonchiffon \li #fffacd \li \svgcolor {#fffacd} + \row \li lightblue \li #add8e6 \li \svgcolor {#add8e6} + \row \li lightcoral \li #f08080 \li \svgcolor {#f08080} + \row \li lightcyan \li #e0ffff \li \svgcolor {#e0ffff} + \row \li lightgoldenrodyellow \li #fafad2 \li \svgcolor {#fafad2} + \row \li lightgray \li #d3d3d3 \li \svgcolor {#d3d3d3} + \row \li lightgreen \li #90ee90 \li \svgcolor {#90ee90} + \row \li lightgrey \li #d3d3d3 \li \svgcolor {#d3d3d3} + \row \li lightpink \li #ffb6c1 \li \svgcolor {#ffb6c1} + \row \li lightsalmon \li #ffa07a \li \svgcolor {#ffa07a} + \row \li lightseagreen \li #20b2aa \li \svgcolor {#20b2aa} + \row \li lightskyblue \li #87cefa \li \svgcolor {#87cefa} + \row \li lightslategray \li #778899 \li \svgcolor {#778899} + \row \li lightslategrey \li #778899 \li \svgcolor {#778899} + \row \li lightsteelblue \li #b0c4de \li \svgcolor {#b0c4de} + \row \li lightyellow \li #ffffe0 \li \svgcolor {#ffffe0} + \row \li lime \li #00ff00 \li \svgcolor {#00ff00} + \row \li limegreen \li #32cd32 \li \svgcolor {#32cd32} + \row \li linen \li #faf0e6 \li \svgcolor {#faf0e6} + \row \li magenta \li #ff00ff \li \svgcolor {#ff00ff} + \row \li maroon \li #800000 \li \svgcolor {#800000} + \row \li mediumaquamarine \li #66cdaa \li \svgcolor {#66cdaa} + \row \li mediumblue \li #0000cd \li \svgcolor {#0000cd} + \row \li mediumorchid \li #ba55d3 \li \svgcolor {#ba55d3} + \row \li mediumpurple \li #9370db \li \svgcolor {#9370db} + \row \li mediumseagreen \li #3cb371 \li \svgcolor {#3cb371} + \row \li mediumslateblue \li #7b68ee \li \svgcolor {#7b68ee} + \row \li mediumspringgreen \li #00fa9a \li \svgcolor {#00fa9a} + \row \li mediumturquoise \li #48d1cc \li \svgcolor {#48d1cc} + \row \li mediumvioletred \li #c71585 \li \svgcolor {#c71585} + \row \li midnightblue \li #191970 \li \svgcolor {#191970} + \row \li mintcream \li #f5fffa \li \svgcolor {#f5fffa} + \row \li mistyrose \li #ffe4e1 \li \svgcolor {#ffe4e1} + \row \li moccasin \li #ffe4b5 \li \svgcolor {#ffe4b5} + \row \li navajowhite \li #ffdead \li \svgcolor {#ffdead} + \row \li navy \li #000080 \li \svgcolor {#000080} + \row \li oldlace \li #fdf5e6 \li \svgcolor {#fdf5e6} + \row \li olive \li #808000 \li \svgcolor {#808000} + \row \li olivedrab \li #6b8e23 \li \svgcolor {#6b8e23} + \row \li orange \li #ffa500 \li \svgcolor {#ffa500} + \row \li orangered \li #ff4500 \li \svgcolor {#ff4500} + \row \li orchid \li #da70d6 \li \svgcolor {#da70d6} + \row \li palegoldenrod \li #eee8aa \li \svgcolor {#eee8aa} + \row \li palegreen \li #98fb98 \li \svgcolor {#98fb98} + \row \li paleturquoise \li #afeeee \li \svgcolor {#afeeee} + \row \li palevioletred \li #db7093 \li \svgcolor {#db7093} + \row \li papayawhip \li #ffefd5 \li \svgcolor {#ffefd5} + \row \li peachpuff \li #ffdab9 \li \svgcolor {#ffdab9} + \row \li peru \li #cd853f \li \svgcolor {#cd853f} + \row \li pink \li #ffc0cb \li \svgcolor {#ffc0cb} + \row \li plum \li #dda0dd \li \svgcolor {#dda0dd} + \row \li powderblue \li #b0e0e6 \li \svgcolor {#b0e0e6} + \row \li purple \li #800080 \li \svgcolor {#800080} + \row \li red \li #ff0000 \li \svgcolor {#ff0000} + \row \li rosybrown \li #bc8f8f \li \svgcolor {#bc8f8f} + \row \li royalblue \li #4169e1 \li \svgcolor {#4169e1} + \row \li saddlebrown \li #8b4513 \li \svgcolor {#8b4513} + \row \li salmon \li #fa8072 \li \svgcolor {#fa8072} + \row \li sandybrown \li #f4a460 \li \svgcolor {#f4a460} + \row \li seagreen \li #2e8b57 \li \svgcolor {#2e8b57} + \row \li seashell \li #fff5ee \li \svgcolor {#fff5ee} + \row \li sienna \li #a0522d \li \svgcolor {#a0522d} + \row \li silver \li #c0c0c0 \li \svgcolor {#c0c0c0} + \row \li skyblue \li #87ceeb \li \svgcolor {#87ceeb} + \row \li slateblue \li #6a5acd \li \svgcolor {#6a5acd} + \row \li slategray \li #708090 \li \svgcolor {#708090} + \row \li slategrey \li #708090 \li \svgcolor {#708090} + \row \li snow \li #fffafa \li \svgcolor {#fffafa} + \row \li springgreen \li #00ff7f \li \svgcolor {#00ff7f} + \row \li steelblue \li #4682b4 \li \svgcolor {#4682b4} + \row \li tan \li #d2b48c \li \svgcolor {#d2b48c} + \row \li teal \li #008080 \li \svgcolor {#008080} + \row \li thistle \li #d8bfd8 \li \svgcolor {#d8bfd8} + \row \li tomato \li #ff6347 \li \svgcolor {#ff6347} + \row \li turquoise \li #40e0d0 \li \svgcolor {#40e0d0} + \row \li violet \li #ee82ee \li \svgcolor {#ee82ee} + \row \li wheat \li #f5deb3 \li \svgcolor {#f5deb3} + \row \li white \li #ffffff \li \svgcolor {#ffffff} + \row \li whitesmoke \li #f5f5f5 \li \svgcolor {#f5f5f5} + \row \li yellow \li #ffff00 \li \svgcolor {#ffff00} + \row \li yellowgreen \li #9acd32 \li \svgcolor {#9acd32} + \endtable diff --git a/src/gui/doc/src/qt6-changes.qdoc b/src/gui/doc/src/qt6-changes.qdoc index 109a7f1750..60e1bffba8 100644 --- a/src/gui/doc/src/qt6-changes.qdoc +++ b/src/gui/doc/src/qt6-changes.qdoc @@ -5,7 +5,7 @@ \page gui-changes-qt6.html \title Changes to Qt GUI \ingroup changes-qt-5-to-6 - \brief Migrate Qt GUI to Qt 6. + \brief Kernel, Text, Painting, and Utility classes are modified. Qt 6 is a result of the conscious effort to make the framework more efficient and easy to use. @@ -114,4 +114,38 @@ Metal, in addition to OpenGL. On Windows the default choice is Direct 3D, therefore the removal of ANGLE is alleviated by having support for graphics APIs other than OpenGL as well. + + \section2 Native clipboard integration + + Qt 5 provided interfaces for integrating platform specific or custom + clipboard formats into Qt through \c QMacPasteboardMime in \c QtMacExtras, + and \c QWindowsMime from the Windows QPA API. Since Qt 6.6, the + equivalent functionality is provided by the classes QUtiMimeConverter for + \macos, and the QWindowsMimeConverter for Windows. + + Porting from QWindowsMime to QWindowsMimeConverter requires practically no + changes, as the virtual interface is identical. However, in Qt 6 it is no + longer needed to register a QWindowsMimeConverter implementation; + instantiating the type implicitly registers the converter. + + Porting a QMacPasteboardMime to QUtiMimeConverter requires renaming some of + the virtual functions. Note that the \c{QMacPasteboardMime} API used the + outdated term \c{flavor} for the native clipboard format on \macos, whereas + the platform now uses \c{Uniform Type Identifiers}, i.e. \c{UTI}s, which Qt + has adapted for function and parameter names. + + The \c{mimeFor} and \c{flavorFor} functions are replaced by the + \l{QUtiMimeConverter::}{mimeForUti} and \l{QUtiMimeConverter::}{utiForMime} + implementations, respectively. Those should return the name of the mime + type or \c{UTI} that the converter can convert the input format to, so a + port usually just involves renaming existing overrides. The + \c{convertToMime}, \c{convertFromMime}, and \c{count} functions in + QUtiMimeConverter are identical to their QMacPasteboardMime versions. + + The \c{canConvert}, \c{converterName} functions are no longer needed, they + are implied by implementation of the above functions, so overrides of those + functions can be removed. + + As with the the QWindowsMimeConverter, registration is done by instantiating + the type. */ diff --git a/src/gui/doc/src/qtgui-overview.qdoc b/src/gui/doc/src/qtgui-overview.qdoc index ecd34f0e9e..446479c9be 100644 --- a/src/gui/doc/src/qtgui-overview.qdoc +++ b/src/gui/doc/src/qtgui-overview.qdoc @@ -51,6 +51,68 @@ that prefer more low-level APIs to text and font handling can use classes like QRawFont and QGlyphRun. + \section1 RHI Graphics + + The Qt Rendering Hardware Interface is an abstraction for hardware accelerated + graphics APIs, such as, \l{https://www.khronos.org/opengl/}{OpenGL}, + \l{https://www.khronos.org/opengles/}{OpenGL ES}, + \l{https://docs.microsoft.com/en-us/windows/desktop/direct3d}{Direct3D}, + \l{https://developer.apple.com/metal/}{Metal}, and + \l{https://www.khronos.org/vulkan/}{Vulkan}. + + As an alternative to using OpenGL or Vulkan directly to render to a + QWindow, \l QRhi and the related classes provide a portable, cross-platform + 3D graphics and compute API complemented by a shader conditioning and + transpiling pipeline. This way applications can avoid directly depending on + a single, and, in some cases, vendor or platform-specific 3D API. + + Below is a list of the main RHI-related classes. These are complemented by + a number of additional classes and structs. + + \list + \li QRhi + \li QShader + \li QShaderDescription + \li QRhiCommandBuffer + \li QRhiResourceUpdateBatch + \li QRhiBuffer + \li QRhiRenderBuffer + \li QRhiTexture + \li QRhiSampler + \li QRhiTextureRenderTarget + \li QRhiShaderResourceBindings + \li QRhiGraphicsPipeline + \li QRhiComputePipeline + \li QRhiSwapChain + \endlist + + See the \l{RHI Window Example} for an introductory example of creating a + portable, cross-platform application that performs accelerated 3D rendering + onto a QWindow using QRhi. + + Working directly with QWindow is the most advanced and often the most + flexible way of rendering with the QRhi API. It is the most low-level + approach, however, and limited in the sense that Qt's UI technologies, + widgets and Qt Quick, are not utilized at all. In many cases applications + will rather want to integrate QRhi-based rendering into a widget or Qt + Quick-based user interface. QWidget-based applications may choose to embed + the window as a native child into the widget hierarchy via + QWidget::createWindowContainer(), but in many cases \l QRhiWidget will + offer a more convenient enabler to integrate QRhi-based rendering into a + widget UI. Qt Quick provides its own set of enablers for extending the + 2D/3D scene with QRhi-based custom rendering. + + \note The RHI family of APIs are currently offered with a limited + compatibility guarantee, as opposed to regular Qt public APIs. See \l QRhi + for details. + + \section1 3D Matrix and Vector Math + + The Qt GUI module also contains a few math classes to aid with the most + common mathematical operations related to 3D graphics. These classes + include \l {QMatrix4x4}, \l {QVector2D}, \l {QVector3D}, \l {QVector4D}, + and \l {QQuaternion}. + \section1 OpenGL and OpenGL ES Integration QWindow supports rendering using OpenGL and OpenGL ES, depending on what the @@ -86,10 +148,6 @@ For more information, see the \l {OpenGL Window Example}. - The Qt GUI module also contains a few math classes to aid with the most - common mathematical operations related to 3D graphics. These classes include - \l {QMatrix4x4}, \l {QVector4D}, and \l {QQuaternion}. - A \l {QWindow} created with the \l {QSurface::OpenGLSurface} can be used in combination with \l QPainter and \l QOpenGLPaintDevice to have OpenGL hardware-accelerated 2D graphics by sacrificing some of the visual quality. @@ -104,20 +162,23 @@ On Android, Vulkan headers were added in API level 24 of the NDK. - Relevant classes: + The main relevant classes for low-level Vulkan support are: \list - \li QVulkanDeviceFunctions - \li QVulkanExtension - \li QVulkanFunctions - \li QVulkanInfoVector \li QVulkanInstance - \li QVulkanWindow - \li QVulkanWindowRenderer + \li QVulkanFunctions + \li QVulkanDeviceFunctions \endlist + In addition, \l QVulkanWindow provides a convenience subclass of QWindow + that makes it easier to get started with implementing Vulkan-based + rendering targeting a QWindow. Using this helper class is completely + optional; applications with more advanced Vulkan-based renderers may + instead want to use a QWindow with the \l {QSurface::VulkanSurface} type + directly. + For more information, see the \l{Hello Vulkan Widget Example} - and the \l {Hello Vulkan Window Example}. + and the \l {Hello Vulkan Triangle Example}. \section1 Drag and Drop diff --git a/src/gui/doc/src/qtgui.qdoc b/src/gui/doc/src/qtgui.qdoc index d39fa72221..2a1d69d4d3 100644 --- a/src/gui/doc/src/qtgui.qdoc +++ b/src/gui/doc/src/qtgui.qdoc @@ -15,6 +15,23 @@ */ /*! + \module QtGuiPrivate + \title Qt GUI Private C++ Classes + \qtcmakepackage Gui + \qtvariable gui-private + + \brief Provides access to private GUI functionality. + + Use the following CMake commands in your \c {CMakeLists.txt} to access + private Qt GUI APIs: + + \badcode + find_package(Qt6 REQUIRED COMPONENTS Gui) + target_link_libraries(mytarget PRIVATE Qt6::GuiPrivate) + \endcode +*/ + +/*! \page qtgui-index.html \title Qt GUI @@ -54,6 +71,8 @@ \list \li \l {Application Windows} {Qt GUI Application Windows} \li \l {2D Graphics} {Qt GUI 2D Graphics} + \li \l {RHI Graphics} {Qt GUI Accelerated 2D and 3D Graphics using the Qt RHI} + \li \l {3D Matrix and Vector Math} {Qt GUI Matrix and Vector Math} \li \l {OpenGL and OpenGL ES Integration} {Qt GUI OpenGL and OpenGL ES Integration} \li \l {Vulkan Integration} {Qt GUI Vulkan Integration} diff --git a/src/gui/doc/src/richtext.qdoc b/src/gui/doc/src/richtext.qdoc index 5ae7739481..10d9962850 100644 --- a/src/gui/doc/src/richtext.qdoc +++ b/src/gui/doc/src/richtext.qdoc @@ -11,10 +11,9 @@ \page richtext.html \title Rich Text Processing \brief An overview of Qt's rich text processing, editing and display features. - + \ingroup explanations-ui \ingroup frameworks-technologies \ingroup qt-basic-concepts - \ingroup best-practices \nextpage Rich Text Document Structure @@ -839,7 +838,11 @@ \section1 Supported Tags The following table lists the HTML tags supported by Qt's - \l{Rich Text Processing}{rich text} engine: + \l{Rich Text Processing}{rich text} engine. + + \note The functionality implemented for tags listed below is a subset of + the full HTML 4 specification. Not all attributes are supported, + see comments for each tag. \table 70% \header \li Tag |