Fix some parameter issues and replace tkinter messagebox with Qt-based messagebox.

This commit is contained in:
wei
2026-08-03 16:02:45 +08:00
parent 38fd491da8
commit e657a9642e
3 changed files with 16 additions and 10 deletions
+1 -1
View File
@@ -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),
)
+6 -6
View File
@@ -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)
+9 -3
View File
@@ -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: