initial fluent-widgets ui
This commit is contained in:
66
examples/window/settings/demo.py
Normal file
66
examples/window/settings/demo.py
Normal file
@ -0,0 +1,66 @@
|
||||
# coding:utf-8
|
||||
import os
|
||||
import sys
|
||||
from PySide6.QtCore import Qt, QLocale, QTranslator
|
||||
from PySide6.QtGui import QIcon, QColor
|
||||
from PySide6.QtWidgets import QApplication, QHBoxLayout
|
||||
|
||||
from qframelesswindow import FramelessWindow, StandardTitleBar
|
||||
from qfluentwidgets import isDarkTheme, FluentTranslator
|
||||
from setting_interface import SettingInterface
|
||||
from config import cfg, Language
|
||||
|
||||
|
||||
|
||||
class Window(FramelessWindow):
|
||||
|
||||
def __init__(self, parent=None):
|
||||
super().__init__(parent=parent)
|
||||
self.setTitleBar(StandardTitleBar(self))
|
||||
|
||||
self.hBoxLayout = QHBoxLayout(self)
|
||||
self.settingInterface = SettingInterface(self)
|
||||
self.hBoxLayout.setContentsMargins(0, 0, 0, 0)
|
||||
self.hBoxLayout.addWidget(self.settingInterface)
|
||||
|
||||
self.setWindowIcon(QIcon(":/qfluentwidgets/images/logo.png"))
|
||||
self.setWindowTitle("PySide6-Fluent-Widgets")
|
||||
|
||||
self.resize(1080, 784)
|
||||
desktop = QApplication.primaryScreen().size()
|
||||
w, h = desktop.width(), desktop.height()
|
||||
self.move(w//2 - self.width()//2, h//2 - self.height()//2)
|
||||
|
||||
self.titleBar.raise_()
|
||||
|
||||
self.setQss()
|
||||
cfg.themeChanged.connect(self.setQss)
|
||||
|
||||
def setQss(self):
|
||||
theme = 'dark' if isDarkTheme() else 'light'
|
||||
with open(f'resource/qss/{theme}/demo.qss', encoding='utf-8') as f:
|
||||
self.setStyleSheet(f.read())
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
# enable dpi scale
|
||||
if cfg.get(cfg.dpiScale) != "Auto":
|
||||
os.environ["QT_ENABLE_HIGHDPI_SCALING"] = "0"
|
||||
os.environ["QT_SCALE_FACTOR"] = str(cfg.get(cfg.dpiScale))
|
||||
|
||||
app = QApplication(sys.argv)
|
||||
app.setAttribute(Qt.ApplicationAttribute.AA_DontCreateNativeWidgetSiblings)
|
||||
|
||||
# internationalization
|
||||
locale = cfg.get(cfg.language).value
|
||||
fluentTranslator = FluentTranslator(locale)
|
||||
settingTranslator = QTranslator()
|
||||
settingTranslator.load(locale, "settings", ".", "resource/i18n")
|
||||
|
||||
app.installTranslator(fluentTranslator)
|
||||
app.installTranslator(settingTranslator)
|
||||
|
||||
# create main window
|
||||
w = Window()
|
||||
w.show()
|
||||
app.exec()
|
||||
Reference in New Issue
Block a user