update:测试UI

This commit is contained in:
2025-07-03 18:38:03 +08:00
parent 80167661bb
commit 4b15f0fe70
22 changed files with 311 additions and 11 deletions

BIN
IMG/After/voaf_ga01.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 KiB

BIN
IMG/After/voaf_ga02.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 179 KiB

BIN
IMG/BG/bg1.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 442 KiB

BIN
IMG/BG/bg2.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 250 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

BIN
IMG/LOGO/vo01_logo.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

BIN
IMG/LOGO/vo02_logo.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

BIN
IMG/LOGO/vo03_logo.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 177 KiB

BIN
IMG/LOGO/vo04_logo.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

BIN
IMG/LOGO/voaf_logo.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 327 KiB

BIN
IMG/vol4/vo04_ga01.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 KiB

BIN
IMG/vol4/vo04_ga05.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 184 KiB

BIN
IMG/vol4/vo04_ga06.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 197 KiB

BIN
IMG/vol4/vo04_ga07.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 KiB

105
Ui_install.py Normal file
View File

@@ -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

Binary file not shown.

Binary file not shown.

Binary file not shown.

72
animations.py Normal file
View File

@@ -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()

View File

@@ -35,7 +35,7 @@
<bool>true</bool> <bool>true</bool>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
<string>FRAISEMOE2</string> <string> UI Test</string>
</property> </property>
<property name="autoFillBackground"> <property name="autoFillBackground">
<bool>true</bool> <bool>true</bool>
@@ -69,7 +69,102 @@
<string/> <string/>
</property> </property>
<property name="pixmap"> <property name="pixmap">
<pixmap>IMG/5kXCDK1893.jpeg</pixmap> <pixmap>IMG/BG/bg2.jpg</pixmap>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
</widget>
<widget class="QLabel" name="vol1bg">
<property name="geometry">
<rect>
<x>0</x>
<y>250</y>
<width>93</width>
<height>64</height>
</rect>
</property>
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap>IMG/LOGO/vo01_logo.png</pixmap>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
</widget>
<widget class="QLabel" name="vol2bg">
<property name="geometry">
<rect>
<x>0</x>
<y>310</y>
<width>93</width>
<height>64</height>
</rect>
</property>
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap>IMG/LOGO/vo02_logo.png</pixmap>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
</widget>
<widget class="QLabel" name="vol3bg">
<property name="geometry">
<rect>
<x>0</x>
<y>370</y>
<width>93</width>
<height>64</height>
</rect>
</property>
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap>IMG/LOGO/vo03_logo.png</pixmap>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
</widget>
<widget class="QLabel" name="vol4bg">
<property name="geometry">
<rect>
<x>0</x>
<y>430</y>
<width>93</width>
<height>64</height>
</rect>
</property>
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap>IMG/LOGO/vo04_logo.png</pixmap>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
</widget>
<widget class="QLabel" name="afterbg">
<property name="geometry">
<rect>
<x>0</x>
<y>490</y>
<width>93</width>
<height>64</height>
</rect>
</property>
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap>IMG/LOGO/voaf_logo.png</pixmap>
</property> </property>
<property name="scaledContents"> <property name="scaledContents">
<bool>true</bool> <bool>true</bool>

20
main.py
View File

@@ -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 main():
def __init__(self): app = QApplication(sys.argv)
super().__init__()
if __name__ == "__main__":
app = QApplication()
window = MainWindow() window = MainWindow()
window.show() window.show()
app.exec() sys.exit(app.exec())
if __name__ == "__main__":
main()

26
main_window.py Normal file
View File

@@ -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)