# /////////////////////////////////////////////////////////////// # # 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): QMainWindow.__init__(self) # 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_())