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