diff --git a/IMG/After/voaf_ga01.jpg b/IMG/After/voaf_ga01.jpg
new file mode 100755
index 0000000..9412413
Binary files /dev/null and b/IMG/After/voaf_ga01.jpg differ
diff --git a/IMG/After/voaf_ga02.jpg b/IMG/After/voaf_ga02.jpg
new file mode 100755
index 0000000..a5377d5
Binary files /dev/null and b/IMG/After/voaf_ga02.jpg differ
diff --git a/IMG/BG/bg1.jpg b/IMG/BG/bg1.jpg
new file mode 100755
index 0000000..c4deecb
Binary files /dev/null and b/IMG/BG/bg1.jpg differ
diff --git a/IMG/BG/bg2.jpg b/IMG/BG/bg2.jpg
new file mode 100755
index 0000000..e83bcf1
Binary files /dev/null and b/IMG/BG/bg2.jpg differ
diff --git a/IMG/LOGO/gl_head_logo_jp.png b/IMG/LOGO/gl_head_logo_jp.png
new file mode 100644
index 0000000..fe01f25
Binary files /dev/null and b/IMG/LOGO/gl_head_logo_jp.png differ
diff --git a/IMG/LOGO/vo01_logo.png b/IMG/LOGO/vo01_logo.png
new file mode 100755
index 0000000..e88567b
Binary files /dev/null and b/IMG/LOGO/vo01_logo.png differ
diff --git a/IMG/LOGO/vo02_logo.png b/IMG/LOGO/vo02_logo.png
new file mode 100755
index 0000000..a8b948c
Binary files /dev/null and b/IMG/LOGO/vo02_logo.png differ
diff --git a/IMG/LOGO/vo03_logo.png b/IMG/LOGO/vo03_logo.png
new file mode 100755
index 0000000..6273e6b
Binary files /dev/null and b/IMG/LOGO/vo03_logo.png differ
diff --git a/IMG/LOGO/vo04_logo.png b/IMG/LOGO/vo04_logo.png
new file mode 100755
index 0000000..f110beb
Binary files /dev/null and b/IMG/LOGO/vo04_logo.png differ
diff --git a/IMG/LOGO/voaf_logo.png b/IMG/LOGO/voaf_logo.png
new file mode 100755
index 0000000..3470111
Binary files /dev/null and b/IMG/LOGO/voaf_logo.png differ
diff --git a/IMG/vol4/vo04_ga01.jpg b/IMG/vol4/vo04_ga01.jpg
new file mode 100755
index 0000000..8bc9bf0
Binary files /dev/null and b/IMG/vol4/vo04_ga01.jpg differ
diff --git a/IMG/vol4/vo04_ga05.jpg b/IMG/vol4/vo04_ga05.jpg
new file mode 100755
index 0000000..4afc4de
Binary files /dev/null and b/IMG/vol4/vo04_ga05.jpg differ
diff --git a/IMG/vol4/vo04_ga06.jpg b/IMG/vol4/vo04_ga06.jpg
new file mode 100755
index 0000000..be16715
Binary files /dev/null and b/IMG/vol4/vo04_ga06.jpg differ
diff --git a/IMG/vol4/vo04_ga07.jpg b/IMG/vol4/vo04_ga07.jpg
new file mode 100755
index 0000000..86cf2c3
Binary files /dev/null and b/IMG/vol4/vo04_ga07.jpg differ
diff --git a/Ui_install.py b/Ui_install.py
new file mode 100644
index 0000000..e26be64
--- /dev/null
+++ b/Ui_install.py
@@ -0,0 +1,105 @@
+# -*- coding: utf-8 -*-
+
+################################################################################
+## Form generated from reading UI file 'install.ui'
+##
+## Created by: Qt User Interface Compiler version 6.9.1
+##
+## WARNING! All changes made in this file will be lost when recompiling UI file!
+################################################################################
+
+from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
+ QMetaObject, QObject, QPoint, QRect,
+ QSize, QTime, QUrl, Qt)
+from PySide6.QtGui import (QAction, QBrush, QColor, QConicalGradient,
+ QCursor, QFont, QFontDatabase, QGradient,
+ QIcon, QImage, QKeySequence, QLinearGradient,
+ QPainter, QPalette, QPixmap, QRadialGradient,
+ QTransform)
+from PySide6.QtWidgets import (QApplication, QLabel, QMainWindow, QMenu,
+ QMenuBar, QSizePolicy, QWidget)
+
+class Ui_MainWindows(object):
+ def setupUi(self, MainWindows):
+ if not MainWindows.objectName():
+ MainWindows.setObjectName(u"MainWindows")
+ MainWindows.setEnabled(True)
+ MainWindows.resize(1024, 576)
+ MainWindows.setMinimumSize(QSize(1024, 576))
+ MainWindows.setMaximumSize(QSize(1024, 576))
+ MainWindows.setMouseTracking(False)
+ MainWindows.setTabletTracking(False)
+ MainWindows.setAcceptDrops(True)
+ MainWindows.setAutoFillBackground(True)
+ MainWindows.setToolButtonStyle(Qt.ToolButtonStyle.ToolButtonIconOnly)
+ MainWindows.setAnimated(True)
+ MainWindows.setDocumentMode(False)
+ MainWindows.setDockNestingEnabled(False)
+ self.action_2 = QAction(MainWindows)
+ self.action_2.setObjectName(u"action_2")
+ self.centralwidget = QWidget(MainWindows)
+ self.centralwidget.setObjectName(u"centralwidget")
+ self.centralwidget.setAutoFillBackground(True)
+ self.MainBg = QLabel(self.centralwidget)
+ self.MainBg.setObjectName(u"MainBg")
+ self.MainBg.setGeometry(QRect(0, 0, 1031, 561))
+ self.MainBg.setPixmap(QPixmap(u"IMG/BG/bg2.jpg"))
+ self.MainBg.setScaledContents(True)
+ self.vol1bg = QLabel(self.centralwidget)
+ self.vol1bg.setObjectName(u"vol1bg")
+ self.vol1bg.setGeometry(QRect(0, 250, 93, 64))
+ self.vol1bg.setPixmap(QPixmap(u"IMG/LOGO/vo01_logo.png"))
+ self.vol1bg.setScaledContents(True)
+ self.vol2bg = QLabel(self.centralwidget)
+ self.vol2bg.setObjectName(u"vol2bg")
+ self.vol2bg.setGeometry(QRect(0, 310, 93, 64))
+ self.vol2bg.setPixmap(QPixmap(u"IMG/LOGO/vo02_logo.png"))
+ self.vol2bg.setScaledContents(True)
+ self.vol3bg = QLabel(self.centralwidget)
+ self.vol3bg.setObjectName(u"vol3bg")
+ self.vol3bg.setGeometry(QRect(0, 370, 93, 64))
+ self.vol3bg.setPixmap(QPixmap(u"IMG/LOGO/vo03_logo.png"))
+ self.vol3bg.setScaledContents(True)
+ self.vol4bg = QLabel(self.centralwidget)
+ self.vol4bg.setObjectName(u"vol4bg")
+ self.vol4bg.setGeometry(QRect(0, 430, 93, 64))
+ self.vol4bg.setPixmap(QPixmap(u"IMG/LOGO/vo04_logo.png"))
+ self.vol4bg.setScaledContents(True)
+ self.afterbg = QLabel(self.centralwidget)
+ self.afterbg.setObjectName(u"afterbg")
+ self.afterbg.setGeometry(QRect(0, 490, 93, 64))
+ self.afterbg.setPixmap(QPixmap(u"IMG/LOGO/voaf_logo.png"))
+ self.afterbg.setScaledContents(True)
+ MainWindows.setCentralWidget(self.centralwidget)
+ self.menubar = QMenuBar(MainWindows)
+ self.menubar.setObjectName(u"menubar")
+ self.menubar.setGeometry(QRect(0, 0, 1024, 21))
+ self.menu = QMenu(self.menubar)
+ self.menu.setObjectName(u"menu")
+ self.menu_2 = QMenu(self.menubar)
+ self.menu_2.setObjectName(u"menu_2")
+ MainWindows.setMenuBar(self.menubar)
+
+ self.menubar.addAction(self.menu.menuAction())
+ self.menubar.addAction(self.menu_2.menuAction())
+ self.menu.addSeparator()
+ self.menu.addAction(self.action_2)
+
+ self.retranslateUi(MainWindows)
+
+ QMetaObject.connectSlotsByName(MainWindows)
+ # setupUi
+
+ def retranslateUi(self, MainWindows):
+ MainWindows.setWindowTitle(QCoreApplication.translate("MainWindows", u" UI Test", None))
+ self.action_2.setText(QCoreApplication.translate("MainWindows", u"update - sd", None))
+ self.MainBg.setText("")
+ self.vol1bg.setText("")
+ self.vol2bg.setText("")
+ self.vol3bg.setText("")
+ self.vol4bg.setText("")
+ self.afterbg.setText("")
+ self.menu.setTitle(QCoreApplication.translate("MainWindows", u"\u8bbe\u7f6e", None))
+ self.menu_2.setTitle(QCoreApplication.translate("MainWindows", u"\u5173\u4e8e", None))
+ # retranslateUi
+
diff --git a/__pycache__/Ui_install.cpython-310.pyc b/__pycache__/Ui_install.cpython-310.pyc
new file mode 100644
index 0000000..850a345
Binary files /dev/null and b/__pycache__/Ui_install.cpython-310.pyc differ
diff --git a/__pycache__/animations.cpython-310.pyc b/__pycache__/animations.cpython-310.pyc
new file mode 100644
index 0000000..6574186
Binary files /dev/null and b/__pycache__/animations.cpython-310.pyc differ
diff --git a/__pycache__/main_window.cpython-310.pyc b/__pycache__/main_window.cpython-310.pyc
new file mode 100644
index 0000000..015d197
Binary files /dev/null and b/__pycache__/main_window.cpython-310.pyc differ
diff --git a/animations.py b/animations.py
new file mode 100644
index 0000000..64255b2
--- /dev/null
+++ b/animations.py
@@ -0,0 +1,72 @@
+from PySide6.QtCore import (QPropertyAnimation, QSequentialAnimationGroup,
+ QParallelAnimationGroup, QPoint, QEasingCurve)
+from PySide6.QtWidgets import QGraphicsOpacityEffect
+
+class LogoAnimations:
+ def __init__(self, ui):
+ self.ui = ui
+ self.logos = [
+ ui.vol1bg, ui.vol2bg, ui.vol3bg,
+ ui.vol4bg, ui.afterbg
+ ]
+ self.animation_group = None
+
+ def initialize(self):
+ """初始化所有logo的状态(透明且位于屏幕外)"""
+ for logo in self.logos:
+ # 保存原始位置
+ logo.original_pos = logo.pos()
+ # 设置透明度效果
+ opacity_effect = QGraphicsOpacityEffect(logo)
+ logo.setGraphicsEffect(opacity_effect)
+ opacity_effect.setOpacity(0)
+ # 移动到屏幕左侧外
+ logo.move(-logo.width(), logo.y())
+
+ def create_animation_sequence(self):
+ """创建顺序动画序列"""
+ self.animation_group = QSequentialAnimationGroup()
+
+ # 为每个logo创建动画(延迟递增)
+ delays = [0, 50, 100, 150, 200] # 每个动画的延迟时间(ms)
+
+ for i, logo in enumerate(self.logos):
+ # 创建并行动画组(位置+透明度)
+ parallel_group = QParallelAnimationGroup()
+
+ # 位置动画(从左侧滑入)
+ pos_anim = QPropertyAnimation(logo, b"pos")
+ pos_anim.setDuration(800)
+ pos_anim.setStartValue(QPoint(-logo.width(), logo.y()))
+ pos_anim.setEndValue(logo.original_pos)
+ pos_anim.setEasingCurve(QEasingCurve.OutBack)
+
+ # 透明度动画(淡入)
+ opacity_anim = QPropertyAnimation(logo.graphicsEffect(), b"opacity")
+ opacity_anim.setDuration(800)
+ opacity_anim.setStartValue(0)
+ opacity_anim.setEndValue(1)
+
+ parallel_group.addAnimation(pos_anim)
+ parallel_group.addAnimation(opacity_anim)
+
+ # 添加延迟(使动画按顺序触发)
+ if delays[i] > 0:
+ delay_anim = QPropertyAnimation(logo, b"pos")
+ delay_anim.setDuration(delays[i])
+ self.animation_group.addAnimation(delay_anim)
+
+ self.animation_group.addAnimation(parallel_group)
+
+ return self.animation_group
+
+ def start_animation(self):
+ """启动动画序列"""
+ self.initialize()
+ self.create_animation_sequence()
+ self.animation_group.start()
+
+ def stop_animation(self):
+ """停止动画"""
+ if self.animation_group:
+ self.animation_group.stop()
\ No newline at end of file
diff --git a/install.ui b/install.ui
index 9fa4c5b..584d751 100644
--- a/install.ui
+++ b/install.ui
@@ -35,7 +35,7 @@
true
- FRAISEMOE2
+ UI Test
true
@@ -69,7 +69,102 @@
- IMG/5kXCDK1893.jpeg
+ IMG/BG/bg2.jpg
+
+
+ true
+
+
+
+
+
+ 0
+ 250
+ 93
+ 64
+
+
+
+
+
+
+ IMG/LOGO/vo01_logo.png
+
+
+ true
+
+
+
+
+
+ 0
+ 310
+ 93
+ 64
+
+
+
+
+
+
+ IMG/LOGO/vo02_logo.png
+
+
+ true
+
+
+
+
+
+ 0
+ 370
+ 93
+ 64
+
+
+
+
+
+
+ IMG/LOGO/vo03_logo.png
+
+
+ true
+
+
+
+
+
+ 0
+ 430
+ 93
+ 64
+
+
+
+
+
+
+ IMG/LOGO/vo04_logo.png
+
+
+ true
+
+
+
+
+
+ 0
+ 490
+ 93
+ 64
+
+
+
+
+
+
+ IMG/LOGO/voaf_logo.png
true
diff --git a/main.py b/main.py
index 9a0bff9..6c15df3 100644
--- a/main.py
+++ b/main.py
@@ -1,12 +1,14 @@
-from PySide6.QtWidgets import QApplication, QMainWindow ,QPushButton
+# main.py
+import sys
+from PySide6.QtWidgets import QApplication
+from Ui_install import Ui_MainWindows
+from main_window import MainWindow
-class MainWindow(QMainWindow):
- def __init__(self):
- super().__init__()
-
-
-if __name__ == "__main__":
- app = QApplication()
+def main():
+ app = QApplication(sys.argv)
window = MainWindow()
window.show()
- app.exec()
\ No newline at end of file
+ sys.exit(app.exec())
+
+if __name__ == "__main__":
+ main()
\ No newline at end of file
diff --git a/main_window.py b/main_window.py
new file mode 100644
index 0000000..06e38b4
--- /dev/null
+++ b/main_window.py
@@ -0,0 +1,26 @@
+from PySide6.QtWidgets import QMainWindow
+from Ui_install import Ui_MainWindows # 导入你的UI文件
+from animations import LogoAnimations
+
+class MainWindow(QMainWindow):
+ def __init__(self):
+ super().__init__()
+ # 设置UI
+ self.ui = Ui_MainWindows()
+ self.ui.setupUi(self)
+
+ # 初始化动画系统
+ self.logo_animations = LogoAnimations(self.ui)
+
+ # 窗口显示时自动启动动画
+ self.showEvent = self.on_show_event
+
+ def on_show_event(self, event):
+ """窗口显示事件处理"""
+ self.logo_animations.start_animation()
+ super().showEvent(event)
+
+ def closeEvent(self, event):
+ """窗口关闭事件处理"""
+ self.logo_animations.stop_animation()
+ super().closeEvent(event)
\ No newline at end of file