Files
PyOneDark_Qt_Widgets_Modern…/main.py
VFX - Visual Effects 88faefb57e 31/05/2021
2021-05-31 13:16:25 -03:00

173 lines
5.9 KiB
Python

# ///////////////////////////////////////////////////////////////
#
# 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
# ///////////////////////////////////////////////////////////////
from gui.uis.windows.main_window.functions_main_window import *
import sys
import os
# IMPORT QT CORE
# ///////////////////////////////////////////////////////////////
from qt_core import *
# IMPORT SETTINGS
# ///////////////////////////////////////////////////////////////
from gui.core.json_settings import Settings
# IMPORT PY ONE DARK WINDOWS
# ///////////////////////////////////////////////////////////////
# MAIN WINDOW
from gui.uis.windows.main_window import *
# IMPORT PY ONE DARK WIDGETS
# ///////////////////////////////////////////////////////////////
from gui.widgets import *
# ADJUST QT FONT DPI FOR HIGHT SCALE
# ///////////////////////////////////////////////////////////////
os.environ["QT_FONT_DPI"] = "96"
# MAIN WINDOW
# ///////////////////////////////////////////////////////////////
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
# SETUP MAIN WINDOw
# Load widgets from "gui\uis\main_window\ui_main.py"
# ///////////////////////////////////////////////////////////////
self.ui = UI_MainWindow()
self.ui.setup_ui(self)
# LOAD SETTINGS
# ///////////////////////////////////////////////////////////////
settings = Settings()
self.settings = settings.items
# SETUP MAIN WINDOW
# ///////////////////////////////////////////////////////////////
self.hide_grips = True # Show/Hide resize grips
SetupMainWindow.setup(self)
# LEFT MENUS / GET SIGNALS WHEN LEFT MENU BTN IS CLICKED / RELEASED
# ///////////////////////////////////////////////////////////////
# ADD MENUS
self.ui.left_menu.add_menus(SetupMainWindow.add_left_menus)
# SET SIGNALS
self.ui.left_menu.clicked.connect(self.btn_clicked)
self.ui.left_menu.released.connect(self.btn_released)
# TITLE BAR / ADD EXTRA BUTTONS
# ///////////////////////////////////////////////////////////////
# ADD MENUS
self.ui.title_bar.add_menus(SetupMainWindow.add_title_bar_menus)
# SET SIGNALS
self.ui.title_bar.clicked.connect(self.btn_clicked)
self.ui.title_bar.released.connect(self.btn_released)
# ADD Title
if self.settings["custom_title_bar"]:
self.ui.title_bar.set_title(self.settings["app_name"])
else:
self.ui.title_bar.set_title("Welcome to PyOneDark")
# SET INITIAL PAGE
# ///////////////////////////////////////////////////////////////
FunctionsMain.set_page(self, self.ui.load_pages.page_1)
# SHOW MAIN WINDOW
# ///////////////////////////////////////////////////////////////
self.show()
# LEFT MENU BTN IS CLICKED
# Run function when btn is clicked
# Check funtion by object name / btn_id
# ///////////////////////////////////////////////////////////////
def btn_clicked(self):
# GET BT CLICKED
btn = SetupMainWindow.setup_btns(self)
# LEFT MENU
# ///////////////////////////////////////////////////////////////
# Load Home
if btn.objectName() == "btn_home":
# Select Menu
self.ui.left_menu.select_only_one(btn.objectName())
# Load Page 1
FunctionsMain.set_page(self, self.ui.load_pages.page_1)
# Load Widgets Page
if btn.objectName() == "btn_widgets":
# Select Menu
self.ui.left_menu.select_only_one(btn.objectName())
# Load Page 2
FunctionsMain.set_page(self, self.ui.load_pages.page_2)
# Load Add User
if btn.objectName() == "btn_add_user":
# Select Menu
self.ui.left_menu.select_only_one(btn.objectName())
# Load Page 3
FunctionsMain.set_page(self, self.ui.load_pages.page_3)
# TITLE BAR MENU
# ///////////////////////////////////////////////////////////////
if btn.objectName() == "btn_top_settings":
# Select Menu
btn.set_active(False) if btn.is_active() else btn.set_active(True)
# DEBUG
print(f"Button {btn.objectName()}, clicked!")
# LEFT MENU BTN IS RELEASED
# Run function when btn is released
# Check funtion by object name / btn_id
# ///////////////////////////////////////////////////////////////
def btn_released(self):
# GET BT CLICKED
btn = SetupMainWindow.setup_btns(self)
# DEBUG
print(f"Button {btn.objectName()}, released!")
# RESIZE EVENT
# ///////////////////////////////////////////////////////////////
def resizeEvent(self, event):
SetupMainWindow.resize_grips(self)
# MOUSE CLICK EVENTS
# ///////////////////////////////////////////////////////////////
def mousePressEvent(self, event):
# SET DRAG POS WINDOW
self.dragPos = event.globalPos()
# SETTINGS WHEN TO START
# Set the initial class and also additional parameters of the "QApplication" class
# ///////////////////////////////////////////////////////////////
if __name__ == "__main__":
# APPLICATION
app = QApplication(sys.argv)
# app.setWindowIcon(QIcon("icon.ico"))
window = MainWindow()
sys.exit(app.exec_())