import sys from video_editor import MainWindow from obs_recorder_and_game_dector import run_bg_app from PySide6.QtCore import QStandardPaths, Qt, Slot, QThread, QTimer, QObject, Signal from PySide6.QtGui import QAction, QIcon, QKeySequence, QScreen from PySide6.QtWidgets import QApplication, QSystemTrayIcon, QMenu, QMainWindow, QLabel, QVBoxLayout, QWidget, QPushButton from PySide6.QtMultimediaWidgets import QVideoWidget page_url = None class BackgroundThread(QThread): def __init__(self,): super().__init__() def run(self): global page_url # Implement your background service logic here while True: new_video = run_bg_app() if new_video is not None: self.sleep(3) page_url = new_video self.open_main_page.emit() self.sleep(1) # Sleep for 1 second # Define a signal for opening a new main page open_main_page = Signal() class MainPage(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle("Main Page") self.resize(300, 200) # Create a label and a button label = QLabel("Hello, World!") button = QPushButton("Open New Page") # Create a layout and set it on a central widget layout = QVBoxLayout() layout.addWidget(label) layout.addWidget(button) central_widget = QWidget() central_widget.setLayout(layout) self.setCentralWidget(central_widget) self.new_page = None def open_new_page(self): global page_url self.new_page = MainWindow(page_url) self.new_page.show() def closeEvent(self, event): event.ignore() def main(): app = QApplication(sys.argv) tray_icon = QSystemTrayIcon(app) menu = QMenu() # Create the main page main_page = MainPage() open_main_window = QAction("Open", app) open_main_window.triggered.connect(main_page.open_new_page) menu.addAction(open_main_window) exit_action = QAction("Exit", app) exit_action.triggered.connect(app.quit) menu.addAction(exit_action) tray_icon.setContextMenu(menu) tray_icon.show() # Start the background thread background_thread = BackgroundThread() background_thread.open_main_page.connect(main_page.open_new_page) background_thread.start() sys.exit(app.exec()) if __name__ == '__main__': main()