video_scene.py 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. # -*- coding: utf-8 -*-
  2. from PyQt6.QtCore import *
  3. from PyQt6.QtWidgets import *
  4. from PyQt6.QtGui import *
  5. from qfluentwidgets import *
  6. from .list import List,TableBase
  7. from .common.translator import Translator
  8. from .common.style_sheet import StyleSheet
  9. from demeter.core import *
  10. class VideoScene(List):
  11. def __init__(self, parent=None):
  12. t = Translator()
  13. self.info = parent.info
  14. super().__init__(
  15. title='场景',
  16. subtitle="每个影片可以包含多个场景,每个场景下有多个镜头",
  17. model='video_scene',
  18. parent=parent
  19. )
  20. self.setObjectName(self.__class__.__name__)
  21. self.addCard(
  22. title='列表',
  23. widget=TableFrame(self),
  24. sourcePath=''
  25. )
  26. self.initData()
  27. def initData(self, page=1):
  28. self.widget.initData(page, {'video_id':self.info['id']})
  29. def showUpdateItem(self, id = 0):
  30. self.updateDefault = {'video_id' : self.info['id']}
  31. self.updateFunc = {}
  32. self.updateItem = {}
  33. self.updateItem['text1'] = QLabel('场景名称:')
  34. self.updateItem['name'] = LineEdit()
  35. self.updateItem['name'].setPlaceholderText('输入场景名称')
  36. self.updateItem['name'].setClearButtonEnabled(True)
  37. self.updateItem['text2'] = QLabel('场景排序:')
  38. self.updateItem['sort'] = LineEdit()
  39. self.updateItem['sort'].setPlaceholderText('输入场景排序')
  40. self.updateItem['sort'].setClearButtonEnabled(True)
  41. self.updateItem['sort'].setText('1')
  42. self.updateItem['text3'] = QLabel('以下为合成影片时每个场景里的镜头设置:')
  43. self.updateItem['text4'] = QLabel('输入要剪辑的镜头时长,秒数为单位,为0则不做剪辑:')
  44. self.updateItem['duration'] = LineEdit()
  45. self.updateItem['duration'].setPlaceholderText('输入要剪辑的镜头时长,秒数为单位,为0则不做剪辑')
  46. self.updateItem['duration'].setClearButtonEnabled(True)
  47. self.updateItem['duration'].setText('3')
  48. self.updateItem['author_check'] = SwitchButton()
  49. self.updateItem['author_check'].setOffText("不添加作者水印")
  50. self.updateItem['author_check'].setOnText("自动添加作者水印:仅远程镜头有效")
  51. self.updateItem['author_check'].setChecked(True)
  52. self.updateItem['fade_check'] = SwitchButton()
  53. self.updateItem['fade_check'].setOffText("不添加添加转场特效")
  54. self.updateItem['fade_check'].setOnText("添加转场特效:自动增加随机的转场效果")
  55. self.updateItem['fade_check'].setChecked(True)
  56. self.updateItem['effect_check'] = SwitchButton()
  57. self.updateItem['effect_check'].setOffText("不添加观赏特效")
  58. self.updateItem['effect_check'].setOnText("添加观赏特效:添加一些不影响观看的特效")
  59. self.updateItem['effect_check'].setChecked(True)
  60. self.updateItem['flip_check'] = SwitchButton()
  61. self.updateItem['flip_check'].setOffText("不做镜像翻转")
  62. self.updateItem['flip_check'].setOnText("镜像翻转:将画面左右翻转")
  63. self.updateItem['flip_check'].setChecked(True)
  64. self.updateItem['speed_check'] = SwitchButton()
  65. self.updateItem['speed_check'].setOffText("不加微变速")
  66. self.updateItem['speed_check'].setOnText("微变速:镜头自动增加微变速")
  67. self.updateItem['speed_check'].setChecked(True)
  68. if id:
  69. info = self.getInfo(id)
  70. self.updateItem['name'].setText(info['name'])
  71. self.updateItem['sort'].setText(str(info['sort']))
  72. if info['author']:
  73. info['author'] = True
  74. else:
  75. info['author'] = False
  76. if info['fade']:
  77. info['fade'] = True
  78. else:
  79. info['fade'] = False
  80. if info['effect']:
  81. info['effect'] = True
  82. else:
  83. info['effect'] = False
  84. if info['flip']:
  85. info['flip'] = True
  86. else:
  87. info['flip'] = False
  88. if info['speed']:
  89. info['speed'] = True
  90. else:
  91. info['speed'] = False
  92. self.updateItem['duration'].setText(str(info['duration']))
  93. self.updateItem['author_check'].setChecked(info['author'])
  94. self.updateItem['fade_check'].setChecked(info['fade'])
  95. self.updateItem['effect_check'].setChecked(info['effect'])
  96. self.updateItem['flip_check'].setChecked(info['flip'])
  97. self.updateItem['speed_check'].setChecked(info['speed'])
  98. def deleteCheck(self):
  99. num = int(self.widget.getItem(2))
  100. if num > 0:
  101. return '场景下有镜头,不能删除哦'
  102. return ''
  103. class TableFrame(TableBase):
  104. def init(self):
  105. self.head = ['ID', '场景名称', '镜头数量', '排序', '更新时间', '操作']
  106. self.button = {'编辑':self.parent.update, '删除':self.parent.delete}