mirror of
https://github.com/Wanderson-Magalhaes/PyOneDark_Qt_Widgets_Modern_GUI.git
synced 2026-05-21 11:25:25 +00:00
v1.0.1 Released
This commit is contained in:
committed by
GitHub
parent
a3952dad06
commit
c36a51579f
@@ -1,19 +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
|
||||
#
|
||||
# ///////////////////////////////////////////////////////////////
|
||||
|
||||
# PY PUSH BUTTON
|
||||
# ///////////////////////////////////////////////////////////////
|
||||
# ///////////////////////////////////////////////////////////////
|
||||
#
|
||||
# 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
|
||||
#
|
||||
# ///////////////////////////////////////////////////////////////
|
||||
|
||||
# PY PUSH BUTTON
|
||||
# ///////////////////////////////////////////////////////////////
|
||||
from . py_toggle import PyToggle
|
||||
@@ -1,88 +1,88 @@
|
||||
# ///////////////////////////////////////////////////////////////
|
||||
#
|
||||
# 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 QT CORE
|
||||
# ///////////////////////////////////////////////////////////////
|
||||
from qt_core import *
|
||||
|
||||
class PyToggle(QCheckBox):
|
||||
def __init__(
|
||||
self,
|
||||
width = 50,
|
||||
bg_color = "#777",
|
||||
circle_color = "#DDD",
|
||||
active_color = "#00BCFF",
|
||||
animation_curve = QEasingCurve.OutBounce
|
||||
):
|
||||
QCheckBox.__init__(self)
|
||||
self.setFixedSize(width, 28)
|
||||
self.setCursor(Qt.PointingHandCursor)
|
||||
|
||||
# COLORS
|
||||
self._bg_color = bg_color
|
||||
self._circle_color = circle_color
|
||||
self._active_color = active_color
|
||||
|
||||
self._position = 3
|
||||
self.animation = QPropertyAnimation(self, b"position")
|
||||
self.animation.setEasingCurve(animation_curve)
|
||||
self.animation.setDuration(500)
|
||||
self.stateChanged.connect(self.setup_animation)
|
||||
|
||||
@Property(float)
|
||||
def position(self):
|
||||
return self._position
|
||||
|
||||
@position.setter
|
||||
def position(self, pos):
|
||||
self._position = pos
|
||||
self.update()
|
||||
|
||||
# START STOP ANIMATION
|
||||
def setup_animation(self, value):
|
||||
self.animation.stop()
|
||||
if value:
|
||||
self.animation.setEndValue(self.width() - 26)
|
||||
else:
|
||||
self.animation.setEndValue(4)
|
||||
self.animation.start()
|
||||
|
||||
def hitButton(self, pos: QPoint):
|
||||
return self.contentsRect().contains(pos)
|
||||
|
||||
def paintEvent(self, e):
|
||||
p = QPainter(self)
|
||||
p.setRenderHint(QPainter.Antialiasing)
|
||||
p.setFont(QFont("Segoe UI", 9))
|
||||
|
||||
# SET PEN
|
||||
p.setPen(Qt.NoPen)
|
||||
|
||||
# DRAW RECT
|
||||
rect = QRect(0, 0, self.width(), self.height())
|
||||
|
||||
if not self.isChecked():
|
||||
p.setBrush(QColor(self._bg_color))
|
||||
p.drawRoundedRect(0,0,rect.width(), 28, 14, 14)
|
||||
p.setBrush(QColor(self._circle_color))
|
||||
p.drawEllipse(self._position, 3, 22, 22)
|
||||
else:
|
||||
p.setBrush(QColor(self._active_color))
|
||||
p.drawRoundedRect(0,0,rect.width(), 28, 14, 14)
|
||||
p.setBrush(QColor(self._circle_color))
|
||||
p.drawEllipse(self._position, 3, 22, 22)
|
||||
|
||||
# ///////////////////////////////////////////////////////////////
|
||||
#
|
||||
# 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 QT CORE
|
||||
# ///////////////////////////////////////////////////////////////
|
||||
from qt_core import *
|
||||
|
||||
class PyToggle(QCheckBox):
|
||||
def __init__(
|
||||
self,
|
||||
width = 50,
|
||||
bg_color = "#777",
|
||||
circle_color = "#DDD",
|
||||
active_color = "#00BCFF",
|
||||
animation_curve = QEasingCurve.OutBounce
|
||||
):
|
||||
QCheckBox.__init__(self)
|
||||
self.setFixedSize(width, 28)
|
||||
self.setCursor(Qt.PointingHandCursor)
|
||||
|
||||
# COLORS
|
||||
self._bg_color = bg_color
|
||||
self._circle_color = circle_color
|
||||
self._active_color = active_color
|
||||
|
||||
self._position = 3
|
||||
self.animation = QPropertyAnimation(self, b"position")
|
||||
self.animation.setEasingCurve(animation_curve)
|
||||
self.animation.setDuration(500)
|
||||
self.stateChanged.connect(self.setup_animation)
|
||||
|
||||
@Property(float)
|
||||
def position(self):
|
||||
return self._position
|
||||
|
||||
@position.setter
|
||||
def position(self, pos):
|
||||
self._position = pos
|
||||
self.update()
|
||||
|
||||
# START STOP ANIMATION
|
||||
def setup_animation(self, value):
|
||||
self.animation.stop()
|
||||
if value:
|
||||
self.animation.setEndValue(self.width() - 26)
|
||||
else:
|
||||
self.animation.setEndValue(4)
|
||||
self.animation.start()
|
||||
|
||||
def hitButton(self, pos: QPoint):
|
||||
return self.contentsRect().contains(pos)
|
||||
|
||||
def paintEvent(self, e):
|
||||
p = QPainter(self)
|
||||
p.setRenderHint(QPainter.Antialiasing)
|
||||
p.setFont(QFont("Segoe UI", 9))
|
||||
|
||||
# SET PEN
|
||||
p.setPen(Qt.NoPen)
|
||||
|
||||
# DRAW RECT
|
||||
rect = QRect(0, 0, self.width(), self.height())
|
||||
|
||||
if not self.isChecked():
|
||||
p.setBrush(QColor(self._bg_color))
|
||||
p.drawRoundedRect(0,0,rect.width(), 28, 14, 14)
|
||||
p.setBrush(QColor(self._circle_color))
|
||||
p.drawEllipse(self._position, 3, 22, 22)
|
||||
else:
|
||||
p.setBrush(QColor(self._active_color))
|
||||
p.drawRoundedRect(0,0,rect.width(), 28, 14, 14)
|
||||
p.setBrush(QColor(self._circle_color))
|
||||
p.drawEllipse(self._position, 3, 22, 22)
|
||||
|
||||
p.end()
|
||||
Reference in New Issue
Block a user