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

crash in "modern Windows" style plugin when using a QStyledItemDelegate (Windows 11)

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Not Evaluated
    • 6.7.1
    • 6.7.0
    • QPA: Windows
    • None
    • Windows
    • a6e0212f529e10911ca332c7e7d554c32a5c954f

    Description

      null pointer when running the code in the sample project below, which uses a custom subclass of QStyledItemDelegate, using qmodernwindowsstyle plugin in Windows 11 (works in Windows 10, at least on my system or when not using the style plugin).

      Stacktrace:

      Qt6Widgets.dll!QRhiWidget::colorBufferFormat() line 807
          at C:\Users\qt\work\qt\qtbase\src\widgets\kernel\qrhiwidget.cpp (807)
      [Externer Code]
      Qt6Widgets.dll!QCommonStyle::drawControl(QStyle::ControlElement element, const QStyleOption * opt, QPainter * p, const QWidget * widget) line 1526
          at C:\Users\qt\work\qt\qtbase\src\widgets\styles\qcommonstyle.cpp (1526)
      Qt6Widgets.dll!QWindowsStyle::drawControl(QStyle::ControlElement ce, const QStyleOption * opt, QPainter * p, const QWidget * widget) line 1807
          at C:\Users\qt\work\qt\qtbase\src\widgets\styles\qwindowsstyle.cpp (1807)
      [Externer Code]
      Qt6Widgets.dll!QTableViewPrivate::drawCell(QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index) line 1055
          at C:\Users\qt\work\qt\qtbase\src\widgets\itemviews\qtableview.cpp (1055)
      Qt6Widgets.dll!QTableView::paintEvent(QPaintEvent * event) line 1600
          at C:\Users\qt\work\qt\qtbase\src\widgets\itemviews\qtableview.cpp (1600)
      Qt6Widgets.dll!QWidget::event(QEvent * event) line 9463
          at C:\Users\qt\work\qt\qtbase\src\widgets\kernel\qwidget.cpp (9463)
      Qt6Widgets.dll!QFrame::event(QEvent * e) line 517
          at C:\Users\qt\work\qt\qtbase\src\widgets\widgets\qframe.cpp (517)
      Qt6Widgets.dll!QAbstractItemView::viewportEvent(QEvent * event) line 1799
          at C:\Users\qt\work\qt\qtbase\src\widgets\itemviews\qabstractitemview.cpp (1799)
      [Externer Code]
      Qt6Widgets.dll!QApplicationPrivate::notify_helper(QObject * receiver, QEvent * e) line 3281
          at C:\Users\qt\work\qt\qtbase\src\widgets\kernel\qapplication.cpp (3281)
      Qt6Widgets.dll!QApplication::notify(QObject * receiver, QEvent * e) line 3241
          at C:\Users\qt\work\qt\qtbase\src\widgets\kernel\qapplication.cpp (3241)
      [Externer Code]
      [Inlineframe] Qt6Widgets.dll!QWidgetPrivate::sendPaintEvent(const QRegion &) line 5647
          at C:\Users\qt\work\qt\qtbase\src\widgets\kernel\qwidget.cpp (5647)
      Qt6Widgets.dll!QWidgetPrivate::drawWidget(QPaintDevice * pdev, const QRegion & rgn, const QPoint & offset, QFlags<enum QWidgetPrivate::DrawWidgetFlag> flags, QPainter * sharedPainter, QWidgetRepaintManager * repaintManager) line 5597
          at C:\Users\qt\work\qt\qtbase\src\widgets\kernel\qwidget.cpp (5597)
      Qt6Widgets.dll!QWidgetPrivate::paintSiblingsRecursive(QPaintDevice * pdev, const QList<QObject *> & siblings, int index, const QRegion & rgn, const QPoint & offset, QFlags<enum QWidgetPrivate::DrawWidgetFlag> flags, QPainter * sharedPainter, QWidgetRepaintManager * repaintManager) line 5777
          at C:\Users\qt\work\qt\qtbase\src\widgets\kernel\qwidget.cpp (5777)
      Qt6Widgets.dll!QWidgetPrivate::paintSiblingsRecursive(QPaintDevice * pdev, const QList<QObject *> & siblings, int index, const QRegion & rgn, const QPoint & offset, QFlags<enum QWidgetPrivate::DrawWidgetFlag> flags, QPainter * sharedPainter, QWidgetRepaintManager * repaintManager) line 5764
          at C:\Users\qt\work\qt\qtbase\src\widgets\kernel\qwidget.cpp (5764)
      Qt6Widgets.dll!QWidgetPrivate::paintSiblingsRecursive(QPaintDevice * pdev, const QList<QObject *> & siblings, int index, const QRegion & rgn, const QPoint & offset, QFlags<enum QWidgetPrivate::DrawWidgetFlag> flags, QPainter * sharedPainter, QWidgetRepaintManager * repaintManager) line 5764
          at C:\Users\qt\work\qt\qtbase\src\widgets\kernel\qwidget.cpp (5764)
      Qt6Widgets.dll!QWidgetPrivate::paintSiblingsRecursive(QPaintDevice * pdev, const QList<QObject *> & siblings, int index, const QRegion & rgn, const QPoint & offset, QFlags<enum QWidgetPrivate::DrawWidgetFlag> flags, QPainter * sharedPainter, QWidgetRepaintManager * repaintManager) line 5764
          at C:\Users\qt\work\qt\qtbase\src\widgets\kernel\qwidget.cpp (5764)
      Qt6Widgets.dll!QWidgetPrivate::drawWidget(QPaintDevice * pdev, const QRegion & rgn, const QPoint & offset, QFlags<enum QWidgetPrivate::DrawWidgetFlag> flags, QPainter * sharedPainter, QWidgetRepaintManager * repaintManager) line 5641
          at C:\Users\qt\work\qt\qtbase\src\widgets\kernel\qwidget.cpp (5641)
      Qt6Widgets.dll!QWidgetPrivate::paintSiblingsRecursive(QPaintDevice * pdev, const QList<QObject *> & siblings, int index, const QRegion & rgn, const QPoint & offset, QFlags<enum QWidgetPrivate::DrawWidgetFlag> flags, QPainter * sharedPainter, QWidgetRepaintManager * repaintManager) line 5777
          at C:\Users\qt\work\qt\qtbase\src\widgets\kernel\qwidget.cpp (5777)
      Qt6Widgets.dll!QWidgetPrivate::drawWidget(QPaintDevice * pdev, const QRegion & rgn, const QPoint & offset, QFlags<enum QWidgetPrivate::DrawWidgetFlag> flags, QPainter * sharedPainter, QWidgetRepaintManager * repaintManager) line 5641
          at C:\Users\qt\work\qt\qtbase\src\widgets\kernel\qwidget.cpp (5641)
      Qt6Widgets.dll!QWidgetPrivate::paintSiblingsRecursive(QPaintDevice * pdev, const QList<QObject *> & siblings, int index, const QRegion & rgn, const QPoint & offset, QFlags<enum QWidgetPrivate::DrawWidgetFlag> flags, QPainter * sharedPainter, QWidgetRepaintManager * repaintManager) line 5777
          at C:\Users\qt\work\qt\qtbase\src\widgets\kernel\qwidget.cpp (5777)
      Qt6Widgets.dll!QWidgetPrivate::paintSiblingsRecursive(QPaintDevice * pdev, const QList<QObject *> & siblings, int index, const QRegion & rgn, const QPoint & offset, QFlags<enum QWidgetPrivate::DrawWidgetFlag> flags, QPainter * sharedPainter, QWidgetRepaintManager * repaintManager) line 5764
          at C:\Users\qt\work\qt\qtbase\src\widgets\kernel\qwidget.cpp (5764)
      Qt6Widgets.dll!QWidgetPrivate::drawWidget(QPaintDevice * pdev, const QRegion & rgn, const QPoint & offset, QFlags<enum QWidgetPrivate::DrawWidgetFlag> flags, QPainter * sharedPainter, QWidgetRepaintManager * repaintManager) line 5641
          at C:\Users\qt\work\qt\qtbase\src\widgets\kernel\qwidget.cpp (5641)
      Qt6Widgets.dll!QWidgetRepaintManager::paintAndFlush() line 906
          at C:\Users\qt\work\qt\qtbase\src\widgets\kernel\qwidgetrepaintmanager.cpp (906)
      Qt6Widgets.dll!QWidgetRepaintManager::sync(QWidget * exposedWidget, const QRegion & exposedRegion) line 629
          at C:\Users\qt\work\qt\qtbase\src\widgets\kernel\qwidgetrepaintmanager.cpp (629)
      Qt6Widgets.dll!QWidgetWindow::handleExposeEvent(QExposeEvent * event) line 1045
          at C:\Users\qt\work\qt\qtbase\src\widgets\kernel\qwidgetwindow.cpp (1045)
      Qt6Widgets.dll!QWidgetWindow::event(QEvent * event) line 311
          at C:\Users\qt\work\qt\qtbase\src\widgets\kernel\qwidgetwindow.cpp (311)
      Qt6Widgets.dll!QApplicationPrivate::notify_helper(QObject * receiver, QEvent * e) line 3289
          at C:\Users\qt\work\qt\qtbase\src\widgets\kernel\qapplication.cpp (3289)
      Qt6Widgets.dll!QApplication::notify(QObject * receiver, QEvent * e) line 3241
          at C:\Users\qt\work\qt\qtbase\src\widgets\kernel\qapplication.cpp (3241)
      [Externer Code]

      Attachments

        1. QTBUG-124223_binaries.zip
          9.98 MB
          thecodemonkey
        2. QTBUG-124223_source.zip
          3 kB
          thecodemonkey
        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            wladimir.leuschner Wladimir Leuschner
            thecodemonkey thecodemonkey
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes