30/04/2021

This commit is contained in:
VFX - Visual Effects
2021-04-30 17:40:01 -03:00
commit f469c58828
10 changed files with 386 additions and 0 deletions

63
gui/core/json_settings.py Normal file
View File

@@ -0,0 +1,63 @@
# ///////////////////////////////////////////////////////////////
#
# BY: WANDERSON M.PIMENTA
# PROJECT MADE WITH: Qt Designer and PySide6
# V: 1.0.0
#
# This project can be used freely for all uses, as long as they maintain the
# respective credits only in the Python scripts, any information in the visual
# interface (GUI) can be modified without any implication.
#
# There are limitations on Qt licenses if you want to use your products
# commercially, I recommend reading them on the official website:
# https://doc.qt.io/qtforpython/licenses.html
#
# ///////////////////////////////////////////////////////////////
# IMPORT PACKAGES AND MODULES
# ///////////////////////////////////////////////////////////////
import json
import os
# APP SETTINGS
# ///////////////////////////////////////////////////////////////
class Settings(object):
# APP PATH
# ///////////////////////////////////////////////////////////////
json_file = "settings.json"
app_path = os.path.abspath(os.getcwd())
settings_path = os.path.join(app_path, json_file)
if not os.path.isfile(settings_path):
print(f"WARNING: \"settings.json\" not found! check in the folder {settings_path}")
# INIT SETTINGS
# ///////////////////////////////////////////////////////////////
def __init__(self):
super(Settings, self).__init__()
# DICTIONARY WITH SETTINGS
self.items = {
"app_name" : "",
"custom_title_bar" : True,
"startup_size" : [],
"minimum_size" : [],
"theme_name" : ""
}
# DESERIALIZE
self.deserialize()
# SERIALIZE JSON
# ///////////////////////////////////////////////////////////////
def serialize(self):
# WRITE JSON FILE
with open(self.settings_path, "w", encoding='utf-8') as write:
json.dump(self.items, write, indent=4)
# DESERIALIZE JSON
# ///////////////////////////////////////////////////////////////
def deserialize(self):
# READ JSON FILE
with open(self.settings_path, "r", encoding='utf-8') as reader:
settings = json.loads(reader.read())
self.items = settings

63
gui/core/json_themes.py Normal file
View File

@@ -0,0 +1,63 @@
# ///////////////////////////////////////////////////////////////
#
# BY: WANDERSON M.PIMENTA
# PROJECT MADE WITH: Qt Designer and PySide6
# V: 1.0.0
#
# This project can be used freely for all uses, as long as they maintain the
# respective credits only in the Python scripts, any information in the visual
# interface (GUI) can be modified without any implication.
#
# There are limitations on Qt licenses if you want to use your products
# commercially, I recommend reading them on the official website:
# https://doc.qt.io/qtforpython/licenses.html
#
# ///////////////////////////////////////////////////////////////
# IMPORT PACKAGES AND MODULES
# ///////////////////////////////////////////////////////////////
import json
import os
# APP THEMES
# ///////////////////////////////////////////////////////////////
class Settings(object):
# APP PATH
# ///////////////////////////////////////////////////////////////
json_file = "settings.json"
app_path = os.path.abspath(os.getcwd())
settings_path = os.path.join(app_path, json_file)
if not os.path.isfile(settings_path):
print(f"WARNING: \"settings.json\" not found! check in the folder {settings_path}")
# INIT SETTINGS
# ///////////////////////////////////////////////////////////////
def __init__(self):
super(Settings, self).__init__()
# DICTIONARY WITH SETTINGS
self.items = {
"app_name" : "",
"custom_title_bar" : True,
"startup_size" : [],
"minimum_size" : [],
"theme_name" : ""
}
# DESERIALIZE
self.deserialize()
# SERIALIZE JSON
# ///////////////////////////////////////////////////////////////
def serialize(self):
# WRITE JSON FILE
with open(self.settings_path, "w", encoding='utf-8') as write:
json.dump(self.items, write, indent=4)
# DESERIALIZE JSON
# ///////////////////////////////////////////////////////////////
def deserialize(self):
# READ JSON FILE
with open(self.settings_path, "r", encoding='utf-8') as reader:
settings = json.loads(reader.read())
self.items = settings

View File

@@ -0,0 +1,56 @@
# ///////////////////////////////////////////////////////////////
#
# BY: WANDERSON M.PIMENTA
# PROJECT MADE WITH: Qt Designer and PySide6
# V: 1.0.0
#
# This project can be used freely for all uses, as long as they maintain the
# respective credits only in the Python scripts, any information in the visual
# interface (GUI) can be modified without any implication.
#
# There are limitations on Qt licenses if you want to use your products
# commercially, I recommend reading them on the official website:
# https://doc.qt.io/qtforpython/licenses.html
#
# ///////////////////////////////////////////////////////////////
# IMPORT PACKAGES AND MODULES
# ///////////////////////////////////////////////////////////////
import sys
# IMPORT QT CORE
# ///////////////////////////////////////////////////////////////
from qt_core import *
# IMPORT SETTINGS
# ///////////////////////////////////////////////////////////////
from gui.core.json_settings import Settings
# IMPORT PY ONE DARK WIDGETS
# ///////////////////////////////////////////////////////////////
from gui.widgets import *
# PY WINDOW
# ///////////////////////////////////////////////////////////////
class UI_MainWindow(object):
def setup_ui(self, parent):
if not parent.objectName():
parent.setObjectName("MainWindow")
# LOAD SETTINGS
# ///////////////////////////////////////////////////////////////
settings = Settings()
self.settings = settings.items
# SET INITIAL PARAMETERS
parent.setMinimumSize(self.settings["startup_size"][0], self.settings["startup_size"][1])
# LOAD PY WINDOW CUSTOM WIDGET
# ///////////////////////////////////////////////////////////////
self.window = PyWindow(parent)
# TEXT
self.label = QLabel(self.settings["app_name"], self.window)
# ADD CENTRAL WIDGET
parent.setCentralWidget(self.window)

23
gui/widgets/__init__.py Normal file
View File

@@ -0,0 +1,23 @@
# ///////////////////////////////////////////////////////////////
#
# BY: WANDERSON M.PIMENTA
# PROJECT MADE WITH: Qt Designer and PySide6
# V: 1.0.0
#
# This project can be used freely for all uses, as long as they maintain the
# respective credits only in the Python scripts, any information in the visual
# interface (GUI) can be modified without any implication.
#
# There are limitations on Qt licenses if you want to use your products
# commercially, I recommend reading them on the official website:
# https://doc.qt.io/qtforpython/licenses.html
#
# ///////////////////////////////////////////////////////////////
# IMPORT WIDGETS
# ADD here all custom widgets
# ///////////////////////////////////////////////////////////////
# PY WINDOW
# ///////////////////////////////////////////////////////////////
from . py_window import PyWindow

View File

@@ -0,0 +1,19 @@
# ///////////////////////////////////////////////////////////////
#
# BY: WANDERSON M.PIMENTA
# PROJECT MADE WITH: Qt Designer and PySide6
# V: 1.0.0
#
# This project can be used freely for all uses, as long as they maintain the
# respective credits only in the Python scripts, any information in the visual
# interface (GUI) can be modified without any implication.
#
# There are limitations on Qt licenses if you want to use your products
# commercially, I recommend reading them on the official website:
# https://doc.qt.io/qtforpython/licenses.html
#
# ///////////////////////////////////////////////////////////////
# IMPORT WIDGETS
# ///////////////////////////////////////////////////////////////
from . py_window import PyWindow

View File

@@ -0,0 +1,56 @@
# ///////////////////////////////////////////////////////////////
#
# BY: WANDERSON M.PIMENTA
# PROJECT MADE WITH: Qt Designer and PySide6
# V: 1.0.0
#
# This project can be used freely for all uses, as long as they maintain the
# respective credits only in the Python scripts, any information in the visual
# interface (GUI) can be modified without any implication.
#
# There are limitations on Qt licenses if you want to use your products
# commercially, I recommend reading them on the official website:
# https://doc.qt.io/qtforpython/licenses.html
#
# ///////////////////////////////////////////////////////////////
# IMPORT PACKAGES AND MODULES
# ///////////////////////////////////////////////////////////////
import sys
# IMPORT QT CORE
# ///////////////////////////////////////////////////////////////
from qt_core import *
# IMPORT SETTINGS
# ///////////////////////////////////////////////////////////////
from gui.core.json_settings import Settings
# PY WINDOW
# ///////////////////////////////////////////////////////////////
class PyWindow(QWidget):
def __init__(self, parent):
super(PyWindow, self).__init__()
# LOAD SETTINGS
# ///////////////////////////////////////////////////////////////
settings = Settings()
self.settings = settings.items
# APP MARGINS LAYOUT
# ///////////////////////////////////////////////////////////////
self.app_margins_layout = QVBoxLayout(self)
self.app_margins_layout.setContentsMargins(0,0,0,0)
self.app_margins_layout.setObjectName("app_margins_layout")
# BG APP
# ///////////////////////////////////////////////////////////////
self.bg_app = QFrame(self)
self.bg_app.setStyleSheet("background: #333")
self.bg_app.setObjectName("bg_app")
# ADD WIDGETS TO APP MARGINS LAUOUT
# ///////////////////////////////////////////////////////////////
self.app_margins_layout.addWidget(self.bg_app)