1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- from PyQt6.QtCore import *
- from PyQt6.QtWidgets import *
- from PyQt6.QtGui import *
- from qfluentwidgets import *
- from demeter.core import *
- from .video_scene import VideoScene
- from .video_footage import VideoFootage
- from .video_combine import VideoCombine
- class Widget(QFrame):
- def __init__(self, text: str, parent=None):
- super().__init__(parent=parent)
- self.label = SubtitleLabel(text, self)
- self.hBoxLayout = QHBoxLayout(self)
- setFont(self.label, 24)
- self.label.setAlignment(Qt.AlignmentFlag.AlignCenter)
- self.hBoxLayout.addWidget(self.label, 1, Qt.AlignmentFlag.AlignCenter)
- self.setObjectName(text.replace(' ', '-'))
- class VideoWindow(MSFluentWindow):
- def __init__(self, id, parent):
- super().__init__()
- self.info = Demeter.service('common').one('video', id=id)
- self.id = id
- self.parent = parent
- self.initWindow()
-
- self.videoFootage = VideoFootage(self)
- self.videoScene = VideoScene(self)
- self.videoCombine = VideoCombine(self)
-
- self.libraryInterface = Widget('library Interface', self)
- self.initNavigation()
- def initNavigation(self):
- self.addSubInterface(self.videoScene, FluentIcon.APPLICATION, '场景')
- self.addSubInterface(self.videoFootage, FluentIcon.VIDEO, '镜头')
- self.addSubInterface(self.videoCombine, FluentIcon.ALBUM, '合成')
- self.addSubInterface(self.libraryInterface, FluentIcon.BOOK_SHELF, '库', FluentIcon.LIBRARY_FILL, NavigationItemPosition.BOTTOM)
-
- self.navigationInterface.addItem(
- routeKey='Help',
- icon=FluentIcon.HELP,
- text='帮助',
- onClick=self.showMessageBox,
- selectable=False,
- position=NavigationItemPosition.BOTTOM,
- )
- self.navigationInterface.setCurrentItem(self.videoScene.objectName())
- self.stackedWidget.currentChanged.connect(self.initData)
- def initData(self):
- widget = self.stackedWidget.currentWidget()
- if (widget):
- widget.initData()
- def initWindow(self):
- Demeter.model('video_scene').init(self.id)
- self.setWindowIcon(QIcon(Demeter.path + 'gui/resource/images/logo.png'))
- self.setWindowTitle('灵镜影片:' + self.info['name'])
- desktop = QApplication.screens()[0].size()
- w, h = desktop.width(), desktop.height()
-
- self.resize(w, h)
-
- self.setMinimumWidth(760)
- self.move(w//2 - self.width()//2, h//2 - self.height()//2)
- def showMessageBox(self):
- w = MessageBox(
- '支持作者🥰',
- '个人开发不易,如果这个项目帮助到了您,可以考虑请作者喝一瓶快乐水🥤。您的支持就是作者开发和维护项目的动力🚀',
- self
- )
- w.yesButton.setText('来啦老弟')
- w.cancelButton.setText('下次一定')
- if w.exec():
- QDesktopServices.openUrl(QUrl("https://qfluentwidgets.com/zh/price/"))
|