[Bug 2147278] Re: KDE/Qt frontend broken under Qt6: black window, terminal not scrolling, enum errors

Launchpad Bug Tracker 2147278 at bugs.launchpad.net
Wed Apr 8 12:19:44 UTC 2026


This bug was fixed in the package ubuntu-release-upgrader - 1:26.04.14

---------------
ubuntu-release-upgrader (1:26.04.14) resolute; urgency=medium

  * DistUpgradeQuirks: Move systemd-coredump quirk from PreDistUpgradeCache
    to PostDistUpgradeCache so marks survive the apt resolver, and re-mark
    the KDE metapackage for upgrade if held back (LP: #2147255, #2147293)
  * Several fixes for the KDE frontend (LP: #2147278):
    - Fix black window by using local QEventLoop instead of
      app.exec()/app.exit() pattern that breaks under Qt6
    - Fix terminal output not auto-scrolling with new lines
    - Fix Qt6 scoped enum references (QMessageBox.Icon,
      QTextCursor.MoveOperation, Qt.WindowType, QMessageBox.StandardButton)
    - Add PyQtCompat.py shim to support both PyQt5 (24.04) and PyQt6

 -- Erich Eickmeyer <eeickmeyer at ubuntu.com>  Sat, 04 Apr 2026 11:57:19
-0700

** Changed in: ubuntu-release-upgrader (Ubuntu)
       Status: In Progress => Fix Released

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to ubuntu-release-upgrader in
Ubuntu.
https://bugs.launchpad.net/bugs/2147278

Title:
  KDE/Qt frontend broken under Qt6: black window, terminal not
  scrolling, enum errors

Status in ubuntu-release-upgrader package in Ubuntu:
  Fix Released

Bug description:
  The KDE (Qt) frontend of ubuntu-release-upgrader has several issues
  when running under Qt6/PyQt6:

  1. Black window on startup

  The main upgrader window appears completely black with no content
  rendered. This is caused by the app.exec()/app.exit() pattern used to
  process events during window setup. In Qt6, calling app.exit() marks
  the QApplication as "quit", which prevents subsequent paint events
  from being processed.

  2. Terminal output does not auto-scroll

  The DumbTerminal widget that displays upgrade progress output does not
  scroll to follow new lines as they are added. Users must manually
  scroll to see current progress.

  3. Unscoped Qt5-style enum references crash under PyQt6

  PyQt6 requires fully-scoped enum names (e.g., QMessageBox.Icon.Warning
  instead of QMessageBox.Warning). Four locations use the old unscoped
  style, causing AttributeError at runtime:

   - QMessageBox.Warning
   - QTextCursor.End
   - Qt.FramelessWindowHint
   - QMessageBox.Ok / QMessageBox.Cancel

  4. No backward compatibility with PyQt5 on 24.04

  Users upgrading from 24.04 LTS still have PyQt5 installed. The
  frontend imported directly from PyQt6, which is unavailable on those
  systems.

  Fix:

   - Replaced app.exec()/app.exit() with a local QEventLoop for initial window rendering
   - Added moveCursor(End) and ensureCursorVisible() to the terminal widget
   - Updated all enum references to use Qt6-scoped names
   - Created PyQtCompat.py compatibility shim that tries PyQt6 first, falls back to PyQt5

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/ubuntu-release-upgrader/+bug/2147278/+subscriptions





More information about the foundations-bugs mailing list