mirror of
https://github.com/Wanderson-Magalhaes/PyOneDark_Qt_Widgets_Modern_GUI.git
synced 2026-07-14 12:54:55 +00:00
v1.0.1 Released
This commit is contained in:
@@ -1,222 +1,222 @@
|
||||
# ///////////////////////////////////////////////////////////////
|
||||
#
|
||||
# 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 AN 4K MONITOR
|
||||
# ///////////////////////////////////////////////////////////////
|
||||
os.environ["QT_FONT_DPI"] = "96"
|
||||
# IF IS 4K MONITOR ENABLE 'os.environ["QT_SCALE_FACTOR"] = "2"'
|
||||
|
||||
# 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_gui(self)
|
||||
|
||||
# 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)
|
||||
|
||||
# Remove Selection If Clicked By "btn_close_left_column"
|
||||
if btn.objectName() != "btn_settings":
|
||||
self.ui.left_menu.deselect_all_tab()
|
||||
|
||||
# Get Title Bar Btn And Reset Active
|
||||
top_settings = MainFunctions.get_title_bar_btn(self, "btn_top_settings")
|
||||
top_settings.set_active(False)
|
||||
|
||||
# LEFT MENU
|
||||
# ///////////////////////////////////////////////////////////////
|
||||
|
||||
# HOME BTN
|
||||
if btn.objectName() == "btn_home":
|
||||
# Select Menu
|
||||
self.ui.left_menu.select_only_one(btn.objectName())
|
||||
|
||||
# Load Page 1
|
||||
MainFunctions.set_page(self, self.ui.load_pages.page_1)
|
||||
|
||||
# WIDGETS BTN
|
||||
if btn.objectName() == "btn_widgets":
|
||||
# Select Menu
|
||||
self.ui.left_menu.select_only_one(btn.objectName())
|
||||
|
||||
# Load Page 2
|
||||
MainFunctions.set_page(self, self.ui.load_pages.page_2)
|
||||
|
||||
# LOAD USER PAGE
|
||||
if btn.objectName() == "btn_add_user":
|
||||
# Select Menu
|
||||
self.ui.left_menu.select_only_one(btn.objectName())
|
||||
|
||||
# Load Page 3
|
||||
MainFunctions.set_page(self, self.ui.load_pages.page_3)
|
||||
|
||||
# BOTTOM INFORMATION
|
||||
if btn.objectName() == "btn_info":
|
||||
# CHECK IF LEFT COLUMN IS VISIBLE
|
||||
if not MainFunctions.left_column_is_visible(self):
|
||||
self.ui.left_menu.select_only_one_tab(btn.objectName())
|
||||
|
||||
# Show / Hide
|
||||
MainFunctions.toggle_left_column(self)
|
||||
self.ui.left_menu.select_only_one_tab(btn.objectName())
|
||||
else:
|
||||
if btn.objectName() == "btn_close_left_column":
|
||||
self.ui.left_menu.deselect_all_tab()
|
||||
# Show / Hide
|
||||
MainFunctions.toggle_left_column(self)
|
||||
|
||||
self.ui.left_menu.select_only_one_tab(btn.objectName())
|
||||
|
||||
# Change Left Column Menu
|
||||
if btn.objectName() != "btn_close_left_column":
|
||||
MainFunctions.set_left_column_menu(
|
||||
self,
|
||||
menu = self.ui.left_column.menus.menu_2,
|
||||
title = "Info tab",
|
||||
icon_path = Functions.set_svg_icon("icon_info.svg")
|
||||
)
|
||||
|
||||
# SETTINGS LEFT
|
||||
if btn.objectName() == "btn_settings" or btn.objectName() == "btn_close_left_column":
|
||||
# CHECK IF LEFT COLUMN IS VISIBLE
|
||||
if not MainFunctions.left_column_is_visible(self):
|
||||
# Show / Hide
|
||||
MainFunctions.toggle_left_column(self)
|
||||
self.ui.left_menu.select_only_one_tab(btn.objectName())
|
||||
else:
|
||||
if btn.objectName() == "btn_close_left_column":
|
||||
self.ui.left_menu.deselect_all_tab()
|
||||
# Show / Hide
|
||||
MainFunctions.toggle_left_column(self)
|
||||
self.ui.left_menu.select_only_one_tab(btn.objectName())
|
||||
|
||||
# Change Left Column Menu
|
||||
if btn.objectName() != "btn_close_left_column":
|
||||
MainFunctions.set_left_column_menu(
|
||||
self,
|
||||
menu = self.ui.left_column.menus.menu_1,
|
||||
title = "Settings Left Column",
|
||||
icon_path = Functions.set_svg_icon("icon_settings.svg")
|
||||
)
|
||||
|
||||
# TITLE BAR MENU
|
||||
# ///////////////////////////////////////////////////////////////
|
||||
|
||||
# SETTINGS TITLE BAR
|
||||
if btn.objectName() == "btn_top_settings":
|
||||
# Toogle Active
|
||||
if not MainFunctions.right_column_is_visible(self):
|
||||
btn.set_active(True)
|
||||
|
||||
# Show / Hide
|
||||
MainFunctions.toggle_right_column(self)
|
||||
else:
|
||||
btn.set_active(False)
|
||||
|
||||
# Show / Hide
|
||||
MainFunctions.toggle_right_column(self)
|
||||
|
||||
# Get Left Menu Btn
|
||||
top_settings = MainFunctions.get_left_menu_btn(self, "btn_settings")
|
||||
top_settings.set_active_tab(False)
|
||||
|
||||
# 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()
|
||||
|
||||
# EXEC APP
|
||||
# ///////////////////////////////////////////////////////////////
|
||||
# ///////////////////////////////////////////////////////////////
|
||||
#
|
||||
# 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 AN 4K MONITOR
|
||||
# ///////////////////////////////////////////////////////////////
|
||||
os.environ["QT_FONT_DPI"] = "96"
|
||||
# IF IS 4K MONITOR ENABLE 'os.environ["QT_SCALE_FACTOR"] = "2"'
|
||||
|
||||
# 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_gui(self)
|
||||
|
||||
# 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)
|
||||
|
||||
# Remove Selection If Clicked By "btn_close_left_column"
|
||||
if btn.objectName() != "btn_settings":
|
||||
self.ui.left_menu.deselect_all_tab()
|
||||
|
||||
# Get Title Bar Btn And Reset Active
|
||||
top_settings = MainFunctions.get_title_bar_btn(self, "btn_top_settings")
|
||||
top_settings.set_active(False)
|
||||
|
||||
# LEFT MENU
|
||||
# ///////////////////////////////////////////////////////////////
|
||||
|
||||
# HOME BTN
|
||||
if btn.objectName() == "btn_home":
|
||||
# Select Menu
|
||||
self.ui.left_menu.select_only_one(btn.objectName())
|
||||
|
||||
# Load Page 1
|
||||
MainFunctions.set_page(self, self.ui.load_pages.page_1)
|
||||
|
||||
# WIDGETS BTN
|
||||
if btn.objectName() == "btn_widgets":
|
||||
# Select Menu
|
||||
self.ui.left_menu.select_only_one(btn.objectName())
|
||||
|
||||
# Load Page 2
|
||||
MainFunctions.set_page(self, self.ui.load_pages.page_2)
|
||||
|
||||
# LOAD USER PAGE
|
||||
if btn.objectName() == "btn_add_user":
|
||||
# Select Menu
|
||||
self.ui.left_menu.select_only_one(btn.objectName())
|
||||
|
||||
# Load Page 3
|
||||
MainFunctions.set_page(self, self.ui.load_pages.page_3)
|
||||
|
||||
# BOTTOM INFORMATION
|
||||
if btn.objectName() == "btn_info":
|
||||
# CHECK IF LEFT COLUMN IS VISIBLE
|
||||
if not MainFunctions.left_column_is_visible(self):
|
||||
self.ui.left_menu.select_only_one_tab(btn.objectName())
|
||||
|
||||
# Show / Hide
|
||||
MainFunctions.toggle_left_column(self)
|
||||
self.ui.left_menu.select_only_one_tab(btn.objectName())
|
||||
else:
|
||||
if btn.objectName() == "btn_close_left_column":
|
||||
self.ui.left_menu.deselect_all_tab()
|
||||
# Show / Hide
|
||||
MainFunctions.toggle_left_column(self)
|
||||
|
||||
self.ui.left_menu.select_only_one_tab(btn.objectName())
|
||||
|
||||
# Change Left Column Menu
|
||||
if btn.objectName() != "btn_close_left_column":
|
||||
MainFunctions.set_left_column_menu(
|
||||
self,
|
||||
menu = self.ui.left_column.menus.menu_2,
|
||||
title = "Info tab",
|
||||
icon_path = Functions.set_svg_icon("icon_info.svg")
|
||||
)
|
||||
|
||||
# SETTINGS LEFT
|
||||
if btn.objectName() == "btn_settings" or btn.objectName() == "btn_close_left_column":
|
||||
# CHECK IF LEFT COLUMN IS VISIBLE
|
||||
if not MainFunctions.left_column_is_visible(self):
|
||||
# Show / Hide
|
||||
MainFunctions.toggle_left_column(self)
|
||||
self.ui.left_menu.select_only_one_tab(btn.objectName())
|
||||
else:
|
||||
if btn.objectName() == "btn_close_left_column":
|
||||
self.ui.left_menu.deselect_all_tab()
|
||||
# Show / Hide
|
||||
MainFunctions.toggle_left_column(self)
|
||||
self.ui.left_menu.select_only_one_tab(btn.objectName())
|
||||
|
||||
# Change Left Column Menu
|
||||
if btn.objectName() != "btn_close_left_column":
|
||||
MainFunctions.set_left_column_menu(
|
||||
self,
|
||||
menu = self.ui.left_column.menus.menu_1,
|
||||
title = "Settings Left Column",
|
||||
icon_path = Functions.set_svg_icon("icon_settings.svg")
|
||||
)
|
||||
|
||||
# TITLE BAR MENU
|
||||
# ///////////////////////////////////////////////////////////////
|
||||
|
||||
# SETTINGS TITLE BAR
|
||||
if btn.objectName() == "btn_top_settings":
|
||||
# Toogle Active
|
||||
if not MainFunctions.right_column_is_visible(self):
|
||||
btn.set_active(True)
|
||||
|
||||
# Show / Hide
|
||||
MainFunctions.toggle_right_column(self)
|
||||
else:
|
||||
btn.set_active(False)
|
||||
|
||||
# Show / Hide
|
||||
MainFunctions.toggle_right_column(self)
|
||||
|
||||
# Get Left Menu Btn
|
||||
top_settings = MainFunctions.get_left_menu_btn(self, "btn_settings")
|
||||
top_settings.set_active_tab(False)
|
||||
|
||||
# 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()
|
||||
|
||||
# EXEC APP
|
||||
# ///////////////////////////////////////////////////////////////
|
||||
sys.exit(app.exec_())
|
||||
Reference in New Issue
Block a user