editwindow title

This commit is contained in:
unknown 2025-09-09 18:25:56 +03:00
parent 424d310404
commit e24247bdb2
3 changed files with 50 additions and 20 deletions

View File

@ -1,10 +1,16 @@
from PySide6.QtCore import QSettings
from PySide6.QtCore import QSettings, Signal, QObject
class ThemeManager(QObject):
theme_changed = Signal(str)
class ThemeManager:
def __init__(self):
super().__init__()
self.settings = QSettings("yobble_messenger", "Theme")
self.theme = self.settings.value("theme", "dark")
def get_theme(self):
return self.theme
def is_dark(self):
return self.theme == "dark"
@ -12,6 +18,7 @@ class ThemeManager:
if theme in ("dark", "light"):
self.theme = theme
self.settings.setValue("theme", theme)
self.theme_changed.emit(self.theme)
# Глобальный экземпляр
theme_manager = ThemeManager()

View File

@ -55,9 +55,9 @@ class LoginView(QWidget):
self.on_login = on_login
self.is_dark_theme = theme_manager.is_dark()
print("self.is_dark_theme", self.is_dark_theme)
self.setWindowTitle(config.APP_HEADER)
# self.setFixedSize(400, 650)
self.setMinimumSize(400, 650)
# self.setWindowTitle(config.APP_HEADER)
# # self.setFixedSize(400, 650)
# self.setMinimumSize(400, 650)
self.lang_combo = None
self.is_registration = False
@ -166,9 +166,21 @@ class LoginView(QWidget):
self.reg_password_input.textChanged.connect(self.confirm_password_input.on_text_changed)
def _update_window_title(self):
window = self.window()
if not window:
return
if self.is_registration:
title = f"{localizer.translate('Регистрация')} | {config.APP_HEADER}"
else:
title = f"{localizer.translate('Авторизация')} | {config.APP_HEADER}"
window.setWindowTitle(title)
def render_form(self):
self.clear_form()
self.clear_main_layout()
self._update_window_title()
if self.is_registration:
self.title.setText(localizer.translate("Регистрация"))
@ -353,3 +365,4 @@ class LoginView(QWidget):
def update_ui_language(self):
self.theme_button.setText("🌞" if not self.is_dark_theme else "🌙")
self.render_form()
self._update_window_title()

38
main.py
View File

@ -1,26 +1,36 @@
from PySide6.QtWidgets import QApplication
from PySide6.QtWidgets import QApplication, QMainWindow
from PySide6.QtGui import QIcon
from app.controllers.main_controller import MainController
from app.core.theme import theme_manager
import app.core.config as config
import sys
import ctypes
def is_admin():
"""Проверяет, запущена ли программа с правами администратора"""
try:
return ctypes.windll.shell32.IsUserAnAdmin()
except:
return False
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle(config.APP_HEADER)
self.setMinimumSize(400, 650)
self.controller = MainController()
self.setCentralWidget(self.controller)
theme_manager.theme_changed.connect(self.apply_theme)
self.apply_theme(theme_manager.get_theme())
def apply_theme(self, theme):
if theme == "dark":
self.setStyleSheet("background-color: #2e2e2e;")
else:
self.setStyleSheet("background-color: #f0f0f0;")
def main():
app = QApplication(sys.argv)
app.setWindowIcon(QIcon("app/icons/logo3.png"))
controller = MainController()
controller.show()
window = MainWindow()
window.show()
sys.exit(app.exec())
if __name__ == "__main__":
# if not is_admin():
# # Попытка перезапуска с правами администратора
# ctypes.windll.shell32.ShellExecuteW(None, "runas", sys.executable, " ".join(sys.argv), None, 1)
# sys.exit()
main()