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):
|
def __init__(self):
|
||||||
|
super().__init__()
|
||||||
self.settings = QSettings("yobble_messenger", "Theme")
|
self.settings = QSettings("yobble_messenger", "Theme")
|
||||||
self.theme = self.settings.value("theme", "dark")
|
self.theme = self.settings.value("theme", "dark")
|
||||||
|
|
||||||
|
def get_theme(self):
|
||||||
|
return self.theme
|
||||||
|
|
||||||
def is_dark(self):
|
def is_dark(self):
|
||||||
return self.theme == "dark"
|
return self.theme == "dark"
|
||||||
|
|
||||||
@ -12,6 +18,7 @@ class ThemeManager:
|
|||||||
if theme in ("dark", "light"):
|
if theme in ("dark", "light"):
|
||||||
self.theme = theme
|
self.theme = theme
|
||||||
self.settings.setValue("theme", theme)
|
self.settings.setValue("theme", theme)
|
||||||
|
self.theme_changed.emit(self.theme)
|
||||||
|
|
||||||
# Глобальный экземпляр
|
# Глобальный экземпляр
|
||||||
theme_manager = ThemeManager()
|
theme_manager = ThemeManager()
|
||||||
|
|||||||
@ -55,9 +55,9 @@ class LoginView(QWidget):
|
|||||||
self.on_login = on_login
|
self.on_login = on_login
|
||||||
self.is_dark_theme = theme_manager.is_dark()
|
self.is_dark_theme = theme_manager.is_dark()
|
||||||
print("self.is_dark_theme", self.is_dark_theme)
|
print("self.is_dark_theme", self.is_dark_theme)
|
||||||
self.setWindowTitle(config.APP_HEADER)
|
# self.setWindowTitle(config.APP_HEADER)
|
||||||
# self.setFixedSize(400, 650)
|
# # self.setFixedSize(400, 650)
|
||||||
self.setMinimumSize(400, 650)
|
# self.setMinimumSize(400, 650)
|
||||||
|
|
||||||
self.lang_combo = None
|
self.lang_combo = None
|
||||||
self.is_registration = False
|
self.is_registration = False
|
||||||
@ -166,9 +166,21 @@ class LoginView(QWidget):
|
|||||||
|
|
||||||
self.reg_password_input.textChanged.connect(self.confirm_password_input.on_text_changed)
|
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):
|
def render_form(self):
|
||||||
self.clear_form()
|
self.clear_form()
|
||||||
self.clear_main_layout()
|
self.clear_main_layout()
|
||||||
|
self._update_window_title()
|
||||||
|
|
||||||
if self.is_registration:
|
if self.is_registration:
|
||||||
self.title.setText(localizer.translate("Регистрация"))
|
self.title.setText(localizer.translate("Регистрация"))
|
||||||
@ -353,3 +365,4 @@ class LoginView(QWidget):
|
|||||||
def update_ui_language(self):
|
def update_ui_language(self):
|
||||||
self.theme_button.setText("🌞" if not self.is_dark_theme else "🌙")
|
self.theme_button.setText("🌞" if not self.is_dark_theme else "🌙")
|
||||||
self.render_form()
|
self.render_form()
|
||||||
|
self._update_window_title()
|
||||||
|
|||||||
38
main.py
38
main.py
@ -1,26 +1,36 @@
|
|||||||
from PySide6.QtWidgets import QApplication
|
from PySide6.QtWidgets import QApplication, QMainWindow
|
||||||
from PySide6.QtGui import QIcon
|
from PySide6.QtGui import QIcon
|
||||||
from app.controllers.main_controller import MainController
|
from app.controllers.main_controller import MainController
|
||||||
|
from app.core.theme import theme_manager
|
||||||
|
import app.core.config as config
|
||||||
import sys
|
import sys
|
||||||
import ctypes
|
|
||||||
|
|
||||||
def is_admin():
|
class MainWindow(QMainWindow):
|
||||||
"""Проверяет, запущена ли программа с правами администратора"""
|
def __init__(self):
|
||||||
try:
|
super().__init__()
|
||||||
return ctypes.windll.shell32.IsUserAnAdmin()
|
self.setWindowTitle(config.APP_HEADER)
|
||||||
except:
|
self.setMinimumSize(400, 650)
|
||||||
return False
|
|
||||||
|
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():
|
def main():
|
||||||
app = QApplication(sys.argv)
|
app = QApplication(sys.argv)
|
||||||
app.setWindowIcon(QIcon("app/icons/logo3.png"))
|
app.setWindowIcon(QIcon("app/icons/logo3.png"))
|
||||||
controller = MainController()
|
|
||||||
controller.show()
|
window = MainWindow()
|
||||||
|
window.show()
|
||||||
|
|
||||||
sys.exit(app.exec())
|
sys.exit(app.exec())
|
||||||
|
|
||||||
if __name__ == "__main__":
|
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