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
|
||||
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()
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user