mirror of
https://github.com/Wanderson-Magalhaes/PyOneDark_Qt_Widgets_Modern_GUI.git
synced 2026-02-17 07:53:57 +00:00
10/05/2021
This commit is contained in:
@@ -26,6 +26,14 @@ from qt_core import *
|
|||||||
# ///////////////////////////////////////////////////////////////
|
# ///////////////////////////////////////////////////////////////
|
||||||
from gui.core.json_settings import Settings
|
from gui.core.json_settings import Settings
|
||||||
|
|
||||||
|
# IMPORT SETTINGS
|
||||||
|
# ///////////////////////////////////////////////////////////////
|
||||||
|
from gui.core.json_themes import Themes
|
||||||
|
|
||||||
|
# IMPORT BUTTON
|
||||||
|
# ///////////////////////////////////////////////////////////////
|
||||||
|
from . py_left_menu_button import PyLeftMenuButton
|
||||||
|
|
||||||
# PY LEFT MENU
|
# PY LEFT MENU
|
||||||
# ///////////////////////////////////////////////////////////////
|
# ///////////////////////////////////////////////////////////////
|
||||||
class PyLeftMenu(QWidget):
|
class PyLeftMenu(QWidget):
|
||||||
@@ -42,18 +50,31 @@ class PyLeftMenu(QWidget):
|
|||||||
):
|
):
|
||||||
super(PyLeftMenu, self).__init__()
|
super(PyLeftMenu, self).__init__()
|
||||||
|
|
||||||
|
# LOAD THEMES
|
||||||
|
# ///////////////////////////////////////////////////////////////
|
||||||
|
themes = Themes()
|
||||||
|
self.themes = themes.items
|
||||||
|
|
||||||
# SET PARENT
|
# SET PARENT
|
||||||
self.parent = parent
|
self.parent = parent
|
||||||
|
|
||||||
# SETUP WIDGETS
|
# SETUP WIDGETS
|
||||||
self.setup_ui()
|
self.setup_ui()
|
||||||
|
|
||||||
self.button = QPushButton("teste")
|
self.button = PyLeftMenuButton("tooltip")
|
||||||
|
self.button.clicked.connect(lambda: self.size_change())
|
||||||
self.button_2 = QPushButton("teste")
|
self.button_2 = QPushButton("teste")
|
||||||
self.layout.addWidget(self.button)
|
self.layout.addWidget(self.button)
|
||||||
self.layout.addWidget(self.button_2)
|
self.layout.addWidget(self.button_2)
|
||||||
|
|
||||||
parent.setMinimumWidth(240)
|
self.animation = QPropertyAnimation(parent, b"minimumWidth")
|
||||||
|
self.animation.setStartValue(50)
|
||||||
|
self.animation.setEndValue(240)
|
||||||
|
self.animation.setEasingCurve(QEasingCurve.InOutCubic)
|
||||||
|
self.animation.setDuration(500)
|
||||||
|
|
||||||
|
def size_change(self):
|
||||||
|
self.animation.start()
|
||||||
|
|
||||||
# SET APP LAYOUT
|
# SET APP LAYOUT
|
||||||
def setup_ui(self):
|
def setup_ui(self):
|
||||||
|
|||||||
113
gui/widgets/py_left_menu/py_left_menu_button.py
Normal file
113
gui/widgets/py_left_menu/py_left_menu_button.py
Normal file
@@ -0,0 +1,113 @@
|
|||||||
|
# ///////////////////////////////////////////////////////////////
|
||||||
|
#
|
||||||
|
# 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 os
|
||||||
|
|
||||||
|
# IMPORT QT CORE
|
||||||
|
# ///////////////////////////////////////////////////////////////
|
||||||
|
from qt_core import *
|
||||||
|
|
||||||
|
# IMPORT COLORS
|
||||||
|
# ///////////////////////////////////////////////////////////////
|
||||||
|
from gui.core.json_themes import Themes
|
||||||
|
|
||||||
|
# TOOLTIP / LABEL StyleSheet
|
||||||
|
style_tooltip = """
|
||||||
|
QLabel {
|
||||||
|
background-color: #0b0b0c;
|
||||||
|
color: rgb(230, 230, 230);
|
||||||
|
padding-left: 10px;
|
||||||
|
padding-right: 10px;
|
||||||
|
border-radius: 17px;
|
||||||
|
border: 1px solid #2f3032;
|
||||||
|
border-left: 3px solid #bdff00;
|
||||||
|
font: 800 9pt "Segoe UI";
|
||||||
|
}
|
||||||
|
"""
|
||||||
|
|
||||||
|
# CUSTOM LEFT MENU
|
||||||
|
# ///////////////////////////////////////////////////////////////
|
||||||
|
class PyLeftMenuButton(QPushButton):
|
||||||
|
def __init__(
|
||||||
|
self,
|
||||||
|
text,
|
||||||
|
margin = 4,
|
||||||
|
bg_one_color = "#2c313c"
|
||||||
|
):
|
||||||
|
super(PyLeftMenuButton, self).__init__()
|
||||||
|
self.setText(text)
|
||||||
|
self.setCursor(Qt.PointingHandCursor)
|
||||||
|
self.setMaximumHeight(40)
|
||||||
|
self.setMinimumHeight(40)
|
||||||
|
|
||||||
|
# PROPERTIES
|
||||||
|
self._margin = margin
|
||||||
|
self._bg_one_color = bg_one_color
|
||||||
|
|
||||||
|
def paintEvent(self, event):
|
||||||
|
# PAINTER
|
||||||
|
p = QPainter()
|
||||||
|
p.begin(self)
|
||||||
|
p.setRenderHint(QPainter.Antialiasing)
|
||||||
|
p.setPen(Qt.NoPen)
|
||||||
|
|
||||||
|
# RECTANGLES
|
||||||
|
rect = QRect(0, 0, self.width(), self.height())
|
||||||
|
rect_inside = QRect(
|
||||||
|
self._margin,
|
||||||
|
self._margin,
|
||||||
|
self.width() - (self._margin * 2),
|
||||||
|
self.height() - (self._margin * 2)
|
||||||
|
)
|
||||||
|
|
||||||
|
# DRAW BG
|
||||||
|
p.setBrush(QColor(self._bg_one_color))
|
||||||
|
p.drawRoundedRect(rect, 0, 0)
|
||||||
|
|
||||||
|
# BG INSIDE
|
||||||
|
p.setBrush(QColor("red"))
|
||||||
|
p.drawRoundedRect(rect_inside, self._margin, self._margin)
|
||||||
|
|
||||||
|
p.end()
|
||||||
|
|
||||||
|
class _ToolTip(QLabel):
|
||||||
|
def __init__(self, parent, tooltip):
|
||||||
|
QLabel.__init__(self)
|
||||||
|
|
||||||
|
# LABEL SETUP
|
||||||
|
self.setObjectName(u"label_tooltip")
|
||||||
|
self.setStyleSheet(style_tooltip)
|
||||||
|
self.setMinimumHeight(36)
|
||||||
|
self.setParent(parent)
|
||||||
|
self.setText(tooltip)
|
||||||
|
self.adjustSize()
|
||||||
|
|
||||||
|
# SET DROP SHADOW
|
||||||
|
self.shadow = QGraphicsDropShadowEffect(self)
|
||||||
|
self.shadow.setBlurRadius(15)
|
||||||
|
self.shadow.setXOffset(0)
|
||||||
|
self.shadow.setYOffset(0)
|
||||||
|
self.shadow.setColor(QColor(0, 0, 0, 160))
|
||||||
|
self.setGraphicsEffect(self.shadow)
|
||||||
|
|
||||||
|
# SET OPACITY
|
||||||
|
self.opacity = QGraphicsOpacityEffect(self)
|
||||||
|
self.opacity.setOpacity(0.85)
|
||||||
|
self.setGraphicsEffect(self.opacity)
|
||||||
|
|
||||||
|
|
||||||
@@ -92,10 +92,10 @@ class PyWindow(QFrame):
|
|||||||
if self.settings["custom_title_bar"]:
|
if self.settings["custom_title_bar"]:
|
||||||
if enable_shadow:
|
if enable_shadow:
|
||||||
self.shadow = QGraphicsDropShadowEffect()
|
self.shadow = QGraphicsDropShadowEffect()
|
||||||
self.shadow.setBlurRadius(20)
|
self.shadow.setBlurRadius(10)
|
||||||
self.shadow.setXOffset(0)
|
self.shadow.setXOffset(0)
|
||||||
self.shadow.setYOffset(0)
|
self.shadow.setYOffset(0)
|
||||||
self.shadow.setColor(QColor(0, 0, 0, 120))
|
self.shadow.setColor(QColor(0, 0, 0, 160))
|
||||||
self.setGraphicsEffect(self.shadow)
|
self.setGraphicsEffect(self.shadow)
|
||||||
|
|
||||||
# APPLY AND UPDATE STYLESHEET
|
# APPLY AND UPDATE STYLESHEET
|
||||||
|
|||||||
Reference in New Issue
Block a user