From e657a9642ebdc079ff6a34a26489b3e966d32c89 Mon Sep 17 00:00:00 2001 From: Wei Hong Date: Mon, 3 Aug 2026 16:02:45 +0800 Subject: [PATCH] Fix some parameter issues and replace tkinter messagebox with Qt-based messagebox. --- app.py | 2 +- core_lib/qt/messagebox.py | 12 ++++++------ main.py | 12 +++++++++--- 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/app.py b/app.py index 9873563..3801a12 100644 --- a/app.py +++ b/app.py @@ -151,7 +151,7 @@ class Launcher(QApplication, LauncherObject): full_path = self.styles_path / qss_relative_path if not full_path.exists(): messagebox.error( - self.main_window, + None, "Resource Error", "Missing stylesheet file: {}".format(full_path), ) diff --git a/core_lib/qt/messagebox.py b/core_lib/qt/messagebox.py index d885896..e766748 100644 --- a/core_lib/qt/messagebox.py +++ b/core_lib/qt/messagebox.py @@ -2,7 +2,7 @@ from PySide6.QtWidgets import QMessageBox, QMainWindow, QWidget, QDialog, QVBoxL QDialogButtonBox, QSizePolicy -def create_messagebox(parent: QWidget, title: str, message: str, +def create_messagebox(parent: QWidget | None, title: str, message: str, icon: QMessageBox.Icon = QMessageBox.Icon.Information, button: QMessageBox.StandardButton = QMessageBox.StandardButton.Ok) -> QMessageBox: msg = QMessageBox(parent) @@ -13,7 +13,7 @@ def create_messagebox(parent: QWidget, title: str, message: str, return msg -def error(parent: QWidget, title: str, message: str, +def error(parent: QWidget | None, title: str, message: str, button: QMessageBox.StandardButton = QMessageBox.StandardButton.Ok) -> None: create_messagebox( parent, @@ -24,7 +24,7 @@ def error(parent: QWidget, title: str, message: str, ).exec() -def info(parent: QWidget, title: str, message: str, +def info(parent: QWidget | None, title: str, message: str, button: QMessageBox.StandardButton = QMessageBox.StandardButton.Ok) -> None: create_messagebox( parent, @@ -35,7 +35,7 @@ def info(parent: QWidget, title: str, message: str, ).exec() -def warning(parent: QWidget, title: str, message: str, +def warning(parent: QWidget | None, title: str, message: str, button: QMessageBox.StandardButton = QMessageBox.StandardButton.Ok) -> None: create_messagebox( parent, @@ -47,7 +47,7 @@ def warning(parent: QWidget, title: str, message: str, def error_with_plain_text( - parent: QWidget, + parent: QWidget | None, title: str, message: str, content: str, @@ -78,7 +78,7 @@ def error_with_plain_text( dialog.exec() -def ask_yes_no_with_plain_text(parent: QWidget, title: str, message: str, content: str): +def ask_yes_no_with_plain_text(parent: QWidget | None, title: str, message: str, content: str): dialog = QDialog(parent) dialog.setWindowTitle(title) dialog.resize(720, 420) diff --git a/main.py b/main.py index ec1e10d..fafbe85 100644 --- a/main.py +++ b/main.py @@ -16,11 +16,13 @@ import os import sys import argparse import logging + +from PySide6.QtWidgets import QApplication, QMainWindow + from app import Launcher -from tkinter import messagebox from core_lib.log.default import DEFAULT_FORMAT, DEFAULT_DATE_FORMAT, get_colorful_handler - +from core_lib.qt import messagebox def main(): root_logger = logging.getLogger() @@ -43,9 +45,13 @@ def main(): # check workdir if not os.path.exists(args.work_dir) or not os.path.isdir(args.work_dir): - messagebox.showerror("Error", f"Specified work directory \"{args.work_dir}\" does not exist or" + app = QApplication(sys.argv) + app.setApplicationName("Launcher Bootstrapper") + window = QMainWindow() + messagebox.error(window, "Error", f"Specified work directory \"{args.work_dir}\" does not exist or" " is not a directory.") logger.error("Work directory '%s' does not exist. Exiting..." % args.work_dir) + app.exit() sys.exit(-1) if os.getcwd() != args.work_dir: