developing custom menu animation
This commit is contained in:
3
admin/data/settings.json
Normal file
3
admin/data/settings.json
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"animation": "InOutQuart"
|
||||||
|
}
|
||||||
29
admin/data/settings.py
Normal file
29
admin/data/settings.py
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
import json
|
||||||
|
|
||||||
|
|
||||||
|
class Settings:
|
||||||
|
@staticmethod
|
||||||
|
def animation():
|
||||||
|
from PyQt5.QtCore import QEasingCurve
|
||||||
|
with open("data/settings.json", "r") as file:
|
||||||
|
settings = json.load(file)
|
||||||
|
|
||||||
|
animation = QEasingCurve.InOutQuart
|
||||||
|
timing = 300
|
||||||
|
match settings["animation"]:
|
||||||
|
case "InOutQuart":
|
||||||
|
animation = QEasingCurve.InOutQuart
|
||||||
|
case "InOutBack":
|
||||||
|
animation = QEasingCurve.InOutBack
|
||||||
|
case "InOutBounce":
|
||||||
|
animation = QEasingCurve.InOutBounce
|
||||||
|
case "OutBack":
|
||||||
|
animation = QEasingCurve.OutBack
|
||||||
|
case "OutElastic":
|
||||||
|
animation = QEasingCurve.OutElastic
|
||||||
|
timing = 1000
|
||||||
|
|
||||||
|
return {
|
||||||
|
"animation": animation,
|
||||||
|
"timing": timing
|
||||||
|
}
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
import sys
|
import sys
|
||||||
from PyQt5 import QtWidgets, QtCore, QtGui
|
from PyQt5 import QtWidgets, QtCore, QtGui
|
||||||
|
from data.settings import Settings
|
||||||
sys.path.append('gui')
|
sys.path.append('gui')
|
||||||
|
|
||||||
try:
|
try:
|
||||||
@@ -17,13 +18,15 @@ MainWindow.show()
|
|||||||
def openMenu():
|
def openMenu():
|
||||||
width = ui.leftMenu.geometry().width()
|
width = ui.leftMenu.geometry().width()
|
||||||
Ui_MainWindow.animation = QtCore.QPropertyAnimation(ui.leftMenu, b"minimumWidth")
|
Ui_MainWindow.animation = QtCore.QPropertyAnimation(ui.leftMenu, b"minimumWidth")
|
||||||
Ui_MainWindow.animation.setDuration(300)
|
Ui_MainWindow.animation.setDuration(Settings.animation()["timing"])
|
||||||
if width == 60:
|
if width == 60:
|
||||||
Ui_MainWindow.animation.setStartValue(60)
|
Ui_MainWindow.animation.setStartValue(60)
|
||||||
Ui_MainWindow.animation.setEndValue(200)
|
Ui_MainWindow.animation.setEndValue(200)
|
||||||
else:
|
else:
|
||||||
Ui_MainWindow.animation.setStartValue(200)
|
Ui_MainWindow.animation.setStartValue(200)
|
||||||
Ui_MainWindow.animation.setEndValue(60)
|
Ui_MainWindow.animation.setEndValue(60)
|
||||||
|
Ui_MainWindow.animation.setEasingCurve(Settings.animation()["animation"])
|
||||||
|
|
||||||
Ui_MainWindow.animation.start()
|
Ui_MainWindow.animation.start()
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user