fix: Fix widget not appearing - store reference and set proper position

ISSUE: Clock and System Monitor widgets were created but not visible.
The widgets were being garbage collected because they weren't stored.

FIX:
1. Store widget in self._active_widgets list to prevent GC
2. Set parent=self to keep widget alive with overlay
3. Position widget at center of screen (visible location)
4. Call raise_() and activateWindow() to bring to front
5. Added debug output showing widget position

WIDGET CREATION NOW:
- Creates widget with parent
- Positions at center of screen
- Shows, raises, activates
- Stores reference in list
- Prints position for debugging
This commit is contained in:
LemonNexus 2026-02-15 16:10:12 +00:00
parent 71a205bc18
commit 3ee405475f
1 changed files with 44 additions and 4 deletions

View File

@ -1736,18 +1736,58 @@ class OverlayWindow(QMainWindow):
"""Add a clock widget to the overlay."""
try:
from core.widget_system import ClockWidget
widget = ClockWidget()
# Create widget with self as parent
widget = ClockWidget(parent=self)
# Position near center of screen
screen = QApplication.primaryScreen().geometry()
x = (screen.width() - 200) // 2
y = (screen.height() - 100) // 2
widget.move(x, y)
# Show and raise
widget.show()
print("[Overlay] Clock widget added")
widget.raise_()
widget.activateWindow()
# Store reference to prevent garbage collection
if not hasattr(self, '_active_widgets'):
self._active_widgets = []
self._active_widgets.append(widget)
print(f"[Overlay] Clock widget added at ({x}, {y})")
except Exception as e:
print(f"[Overlay] Error adding clock widget: {e}")
import traceback
traceback.print_exc()
def _add_system_monitor_widget(self):
"""Add a system monitor widget to the overlay."""
try:
from core.widget_system import SystemMonitorWidget
widget = SystemMonitorWidget()
# Create widget with self as parent
widget = SystemMonitorWidget(parent=self)
# Position below the clock
screen = QApplication.primaryScreen().geometry()
x = (screen.width() - 200) // 2
y = (screen.height() - 100) // 2 + 120
widget.move(x, y)
# Show and raise
widget.show()
print("[Overlay] System monitor widget added")
widget.raise_()
widget.activateWindow()
# Store reference to prevent garbage collection
if not hasattr(self, '_active_widgets'):
self._active_widgets = []
self._active_widgets.append(widget)
print(f"[Overlay] System monitor widget added at ({x}, {y})")
except Exception as e:
print(f"[Overlay] Error adding system monitor widget: {e}")
import traceback
traceback.print_exc()