diff --git a/winehelper_gui.py b/winehelper_gui.py index 4085c1c..0841f1a 100644 --- a/winehelper_gui.py +++ b/winehelper_gui.py @@ -1626,6 +1626,17 @@ class WineHelperGUI(QMainWindow): self.FRAME_STYLE_DEFAULT = "QFrame { border: 2px solid transparent; border-radius: 8px; padding: 0px; }" self.FRAME_STYLE_SELECTED = "QFrame { border: 2px solid #0078d7; border-radius: 8px; padding: 0px; }" + # Стили для кнопок Запустить/Остановить + self.RUN_BUTTON_STYLE = """ + QPushButton { + background-color: #4CAF50; color: white; + font-weight: bold; + } + """ + self.STOP_BUTTON_STYLE = """ + QPushButton { background-color: #d32f2f; color: white; font-weight: bold; } + """ + # Основные переменные self.winehelper_path = Var.RUN_SCRIPT self.process = None @@ -1889,6 +1900,7 @@ class WineHelperGUI(QMainWindow): # --- Верхний ряд кнопок --- top_buttons_layout = QHBoxLayout() self.run_button = QPushButton("Запустить") + self.run_button.setStyleSheet(self.RUN_BUTTON_STYLE) self.run_button.clicked.connect(self.toggle_run_stop_app) top_buttons_layout.addWidget(self.run_button) installed_action_layout.addLayout(top_buttons_layout) @@ -3468,11 +3480,7 @@ class WineHelperGUI(QMainWindow): self.current_selected_app['name'] = name self.current_selected_app['exec'] = exec_cmd - # Состояния кнопки - if desktop_path in self.running_apps: - self.run_button.setText("Остановить") - else: - self.run_button.setText("Запустить") + self._set_run_button_state(desktop_path in self.running_apps) # Показываем панель информации self.info_panel.setVisible(True) @@ -3865,10 +3873,19 @@ class WineHelperGUI(QMainWindow): # Если текущее выбранное приложение - то, что только что завершилось, обновляем кнопку if self.current_selected_app and self.current_selected_app.get('desktop_path') == desktop_path: - self.run_button.setText("Запустить") + self._set_run_button_state(False) else: print(f"Предупреждение: получен сигнал finished для неизвестного процесса {desktop_path}") + def _set_run_button_state(self, is_running): + """Устанавливает текст и стиль для кнопки Запустить/Остановить.""" + if is_running: + self.run_button.setText("Остановить") + self.run_button.setStyleSheet(self.STOP_BUTTON_STYLE) + else: + self.run_button.setText("Запустить") + self.run_button.setStyleSheet(self.RUN_BUTTON_STYLE) + def _run_app_launcher(self, debug=False): """Внутренний метод для запуска приложения (с отладкой или без) с использованием QProcess.""" if not self.current_selected_app or 'exec' not in self.current_selected_app: @@ -3935,7 +3952,7 @@ class WineHelperGUI(QMainWindow): raise RuntimeError(f"Не удалось запустить процесс: {process.errorString()}") self.running_apps[desktop_path] = process - self.run_button.setText("Остановить") + self._set_run_button_state(True) print(f"Запущено: {program} {' '.join(arguments)}") except Exception as e: QMessageBox.critical(self, "Ошибка запуска",