Details
-
Bug
-
Resolution: Unresolved
-
P3: Somewhat important
-
None
-
6.2.3, 6.3.0
-
None
-
Windows 21H2 19044.1654
Ubuntu 20.04.4 LTS (WSL2)
Python 3.10.4
PyQt6 6.2.3, 6.3.0
PyQt5 5.15.6
Description
Hello,
I am testing a Qt application written pin Python using Xvfb and I noticed that when I show and hide and then show again the main window, it will not draw. From the point of view of code the window appears to be showing, but what Xvfb sees is black screen.
To reproduce, in Python, install PyQt6, then run `xvfb-run demo.py`, where the contents of the file are as follows:
from PyQt6.QtGui import QColor from PyQt6.QtWidgets import QMainWindow, QApplication app = QApplication([]) window = QMainWindow() def get_window_color(): window_screenshot = window.screen().grabWindow(window.winId()).toImage() return QColor(window_screenshot.pixel(5, 5)).name() window.show() app.processEvents() print("window color before hiding", get_window_color()) window.hide() app.processEvents() window.show() app.processEvents() print("window color after hiding and showing", get_window_color())
Observe that the output is
window color before hiding #efefef window color after hiding and showing #000000
If using Windows, you can also reproduce by running VcXsrv in "One large window" mode, and then on WSL2 / Ubuntu run `DISPLAY=$(ip route list default | awk '{print $3}'):0 python` and paste the above code. You will see the window appearing, disappearing, and failing to appear again.
The issue does not manifest if running the same code with Qt5, or if running the above code with VcXsrv in the "Multiple windows" mode.
I have found a few similar issues but they all seemed to have been reported for Qt 4 or 5, so I am creating a new issue. Sorry if I did something wrong! I'm new here.
Initially reported on the forum here: https://forum.qt.io/topic/136295/on-qt6-main-window-fails-to-show-after-being-hidden-if-run-without-window-manager
Attachments
Issue Links
- relates to
-
QTBUG-94190 Support x11 standalone mode with window manager functions
- Reported