editwindow title
This commit is contained in:
parent
424d310404
commit
e24247bdb2
@ -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()
|
||||
|
||||
@ -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()
|
||||
|
||||
40
main.py
40
main.py
@ -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()
|
||||
main()
|
||||
Reference in New Issue
Block a user