Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-71036

Qt Core Changes in Qt 6



    • Epic
    • Resolution: Done
    • P2: Important
    • 6.0
    • None
    • Core: Other
    • None
    • QtCore6


      This epic captures the work planned in QtCore for Qt 6, with the individual user stories and subtasks documenting the details.

      The overall goal for QtCore in Qt 6 is to

      • general cleanup
        • get rid of legacy an deprecated code ()
        • Remove 3rd party components (QTBUG-80304)
        • review and remove static variables
      • increase consistency and compatibility with the C++ standard library in containers and value types (QTBUG-77477)
        • std API adoption (QTBUG-77481)
        • build Qt with C++17 compiler mode (QTBUG-77479)
        • adopt smart pointer usage to indicate ownerships (QTBUG-80305)
        • consistently use View classes in Qt APIs
        • API overloads for ranges (QTBUG-80307)
      • streamline the Qt object model and type system
      • cleaner abstractions for I/O and similar operating system services
        • Investigate a QIODevice redesign (QTBUG-76492) (Descoped for 6.0)
        • (Investigate a "QPA for OS services") 
          • Not necessarily required for 6.0

      Get rid of some third-party components:

      • Get rid of legacy Text Codecs (EUC-JP, EUC-KR, GBK, JIS, Shift-JIS, TSCII, Big5, Big5-HKSCS) (QTBUG-75991)
      • Get rid of copy of Public Suffix List / QUrl::topLevelDomain (QTBUG-80308)

      Container improvements

      • Unify QList and QVector (QList as an alias to QVector) ()
      • QFlatMap (patch exists)
      • using QPair = std:pair (deprecate, remove/replace) (QTBUG-80309)
      • Find a fast hash implementation for QHash (std::unordered_map too slow) (QTBUG-80311)
      • Use std::map to implement QMap (to be verified)

      Add Qt5Compat to Qt 6 (QTBUG-80312)

      • Get rid of QRegExp (implies unbootstrapping of qmake)
      • Move QLinkedList out of QtCore

      Move QStateMachine out of QtCore (QTBUG-80316)

      Revisit Multithreading Technologies in Qt?

      • Keep QThread and friends
      • split QMutex into QMutex and QRecursiveMutex (done)
      • Deprecate QtConcurrent?
      • Fix QFuture API or deprecate and move to QtConcurrent
        -> decision process (QTBUG-79283)
      • std::future is not considered to be complete (including ++20) and hence not an option -> no Qt 6 relevance

      Make QDir and friends consistent about their handling of absolute/relative for MS-paths; this may involve some compatibility breakage. The core of the problem is that QFileSystemEntry isn't consistent with itself.
      --> Discussion 18.11.2019: Move into a separate task and assign to Eddy

      Other changes:

      • MS absolute vs relative file path behavior change
      • QByteArray changes (QTBUG-64747, )
      • naked const char * pointer to be removed (except from QByteArray and string handling classes)
      • Investigate usage of qsizetype by Qt containers


        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.



              laknoll Lars Knoll
              kkohne Kai Köhne
              Maurice Kalinowski Maurice Kalinowski
              Alex Blasche Alex Blasche
              0 Vote for this issue
              41 Start watching this issue



                Gerrit Reviews

                  There are no open Gerrit changes