developing custom menu animation

This commit is contained in:
BarsTiger
2022-05-13 09:35:02 +03:00
parent ab33b5f2ee
commit 58245bc8a4
3 changed files with 36 additions and 1 deletions

3
admin/data/settings.json Normal file
View File

@@ -0,0 +1,3 @@
{
"animation": "InOutQuart"
}

29
admin/data/settings.py Normal file
View 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
}

View File

@@ -1,5 +1,6 @@
import sys
from PyQt5 import QtWidgets, QtCore, QtGui
from data.settings import Settings
sys.path.append('gui')
try:
@@ -17,13 +18,15 @@ MainWindow.show()
def openMenu():
width = ui.leftMenu.geometry().width()
Ui_MainWindow.animation = QtCore.QPropertyAnimation(ui.leftMenu, b"minimumWidth")
Ui_MainWindow.animation.setDuration(300)
Ui_MainWindow.animation.setDuration(Settings.animation()["timing"])
if width == 60:
Ui_MainWindow.animation.setStartValue(60)
Ui_MainWindow.animation.setEndValue(200)
else:
Ui_MainWindow.animation.setStartValue(200)
Ui_MainWindow.animation.setEndValue(60)
Ui_MainWindow.animation.setEasingCurve(Settings.animation()["animation"])
Ui_MainWindow.animation.start()