summaryrefslogtreecommitdiffstats
path: root/src/widgets/doc/src/qt6-changes.qdoc
blob: 681d9a3813763088f03059dba4c0b4947e59880a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
/****************************************************************************
**
** Copyright (C) 2020 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** 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 The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/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: https://www.gnu.org/licenses/fdl-1.3.html.
** $QT_END_LICENSE$
**
****************************************************************************/

/*!
    \page widgets-changes-qt6.html
    \title Porting to Qt 6 - Qt Widgets
    \ingroup porting-guides-5-to-6
    \brief Migrate Qt Widgets to Qt 6.

    Qt 6 is a result of the conscious effort to make the framework more
    efficient and easy to use.

    We try to maintain binary and source compatibility for all the public
    APIs in each release. But some changes were inevitable in an effort to
    make Qt a better framework.

    In this topic we summarize those changes in Qt Widgets, and provide
    guidance to handle them.

    \section1 Kernel classes

    \section2 QWidget

    The virtual QWidget::enterEvent() handler now receives a QEnterEvent*
    parameter which has information about the pointer position, rather than
    a plain QEvent*.

    \section2 QDesktopWidget and QApplication::desktop()

    QDesktopWidget was already deprecated in Qt 5, and has been removed in
    Qt 6, together with QApplication::desktop().

    QScreen provides equivalent functionality to query for information about
    available screens, screen that form a virtual desktop, and screen
    geometries.

    Use QWidget::setScreen() to create a QWidget on a specific display;
    note that this does not move a widget to a screen in a virtual desktop
    setup.

    \section2 QAction, QActionGroup

    These classes have been moved into the QtGui module. Member functions that
    depend on types defined in QtWidgets (such as QAction::menu() and
    QAction::setMenu()) are implemented as templates that will be instantiated
    only when called.

    \section2 QPixmap, QBitmap, and QCursor

    QBitmap and QCursor can no longer be implicitly created from a QPixmap; use
    the explicit constructor and factory function instead.

    \section1 Widgets

    \section2 QAbstractButton

    The default timeout parameter for QAbstractButton::animateClick() is
    removed to allow modern connection syntax without the need for qOverload.

    \section2 QComboBox

    The QComboBox::setModel() function is now virtual.

    \section1 Styling Classes and related APIs

    All versioned QStyleOption subclasses are consolidated, and the version
    numbers are reset to 1.

    The various initStyleOption() methods in widget classes are now virtual.

    \section1 Printing Classes

    \section2 QPagedPaintDevice, QPrinter, QPageSize, QPageLayout

    The various enums and types for \l{QPageSize}{page sizes},
    margins, and orientation have been consolidated. QPrinter APIs to set
    paper sizes and margins explicitly have been removed; use
    QPagedPaintDevice::setPageLayout(), QPagedPaintDevice::setPageSize(),
    QPagedPaintDevice::setPageOrientation(), and
    QPagedPaintDevice::setPageMargins() instead.
*/