Commit 103358ef authored by cxy's avatar cxy

update menu

parent d6ffde94
...@@ -132,12 +132,16 @@ class MainWindow(QMainWindow, Ui_MainWindow): ...@@ -132,12 +132,16 @@ class MainWindow(QMainWindow, Ui_MainWindow):
""" """
self.setting.triggered.connect(self.show_setting_dialog) # 设置 self.setting.triggered.connect(self.show_setting_dialog) # 设置
self.action_3.triggered.connect(self.show_detect_dialog) # menu4_action = QtWidgets.QAction()
self.action_3.setEnabled(False) # menu4_action.setObjectName("menu4_action")
self.action_4.triggered.connect(self.show_assemble_dialog) # self.menu_4.addAction(menu4_action)
self.action_4.setEnabled(False) # menu4_action.triggered.connect(self.show_detect_dialog)
self.action_5.triggered.connect(self.import_excel) # self.action_3.triggered.connect(self.show_detect_dialog)
self.action_5.setEnabled(False) # self.action_3.setEnabled(True)
# self.action_4.triggered.connect(self.show_assemble_dialog)
# self.action_4.setEnabled(False)
# self.action_5.triggered.connect(self.import_excel)
# self.action_5.setEnabled(False)
self.action_create.triggered.connect(self.show_create_dialog) # 新建工程 self.action_create.triggered.connect(self.show_create_dialog) # 新建工程
self.action_save.triggered.connect(self.save_project) self.action_save.triggered.connect(self.save_project)
self.action_save.setEnabled(False) self.action_save.setEnabled(False)
...@@ -317,6 +321,7 @@ class MainWindow(QMainWindow, Ui_MainWindow): ...@@ -317,6 +321,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
# 如果选择的行索引小于2,弹出上下文菜单 # 如果选择的行索引小于2,弹出上下文菜单
menu = QMenu() menu = QMenu()
item1 = menu.addAction("删除") item1 = menu.addAction("删除")
add_pb_item = menu.addAction("新增旁白")
# 转换坐标系 # 转换坐标系
screenPos = self.all_tableWidget.mapToGlobal(pos) screenPos = self.all_tableWidget.mapToGlobal(pos)
...@@ -329,6 +334,10 @@ class MainWindow(QMainWindow, Ui_MainWindow): ...@@ -329,6 +334,10 @@ class MainWindow(QMainWindow, Ui_MainWindow):
rowNum, 1).text(), self.all_tableWidget.item(rowNum, 2).text()) rowNum, 1).text(), self.all_tableWidget.item(rowNum, 2).text())
self.del_line_operation_slot(rowNum + 1) self.del_line_operation_slot(rowNum + 1)
return return
if action == add_pb_item:
to_be_delete_element = self.projectContext.all_elements[rowNum]
self.insert_aside_from_cur_time(float(to_be_delete_element.st_time_sec))
return
# 重写关闭Mmainwindow窗口 # 重写关闭Mmainwindow窗口
def closeEvent(self, event): def closeEvent(self, event):
...@@ -591,7 +600,7 @@ class MainWindow(QMainWindow, Ui_MainWindow): ...@@ -591,7 +600,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self.projectContext.excel_path = book_path self.projectContext.excel_path = book_path
# 获取视频的时长等信息,初始化开始结束时间 # 获取视频的时长等信息,初始化开始结束时间
startTime = "00:00:20" startTime = "00:00:00"
video = cv2.VideoCapture(video_path) video = cv2.VideoCapture(video_path)
fps = video.get(cv2.CAP_PROP_FPS) fps = video.get(cv2.CAP_PROP_FPS)
...@@ -1685,6 +1694,26 @@ class MainWindow(QMainWindow, Ui_MainWindow): ...@@ -1685,6 +1694,26 @@ class MainWindow(QMainWindow, Ui_MainWindow):
else: else:
self.add_line_operation_slot(idx, str(cur_time), str(cur_time+1), "", "插入旁白,推荐字数为0", "", self.projectContext.speaker_speed) self.add_line_operation_slot(idx, str(cur_time), str(cur_time+1), "", "插入旁白,推荐字数为0", "", self.projectContext.speaker_speed)
def insert_aside_from_cur_time(self,cur_time:float):
"""在当前位置插入旁白
根据当前时间找到表格中合适插入的位置,然后在对应位置添加旁白
"""
if self.player.duration() == 0 or self.projectContext.project_base_dir in [None, ""]:
self.prompt_dialog.show_with_msg("插入失败!未检测到视频或工程!")
return
print("self.player.position()", self.player.position())
idx = self.calculate_element_row(cur_time)
print("idex :" + str(idx))
print("[insert_aside_from_now_slot] idx=", idx)
# 其实end_time目前是没啥用的,可以删掉了
print("cur_lens", len(self.projectContext.all_elements))
if idx < len(self.projectContext.all_elements) - 1:
self.add_line_operation_slot(idx, str(cur_time), self.projectContext.all_elements[idx+1].st_time_sec, "", "插入旁白,推荐字数为0", "", self.projectContext.speaker_speed)
else:
self.add_line_operation_slot(idx, str(cur_time), str(cur_time+1), "", "插入旁白,推荐字数为0", "", self.projectContext.speaker_speed)
def calculate_element_row(self, cur_time: float): def calculate_element_row(self, cur_time: float):
"""确认表格中适合cur_time的插入位置 """确认表格中适合cur_time的插入位置
...@@ -1824,7 +1853,6 @@ class MainWindow(QMainWindow, Ui_MainWindow): ...@@ -1824,7 +1853,6 @@ class MainWindow(QMainWindow, Ui_MainWindow):
# new_list = [] # new_list = []
for new_element in elements: for new_element in elements:
start_time_map[new_element.st_time_sec] = "" start_time_map[new_element.st_time_sec] = ""
# print(">>>>>>remove start")
for aside in self.projectContext.aside_list: # 使用切片复制整个列表 for aside in self.projectContext.aside_list: # 使用切片复制整个列表
aside.print_self() aside.print_self()
if aside.aside != None and aside.aside != "" and aside.st_time_sec not in start_time_map: if aside.aside != None and aside.aside != "" and aside.st_time_sec not in start_time_map:
...@@ -1835,7 +1863,6 @@ class MainWindow(QMainWindow, Ui_MainWindow): ...@@ -1835,7 +1863,6 @@ class MainWindow(QMainWindow, Ui_MainWindow):
# new_list.append(aside) # new_list.append(aside)
# self.projectContext.aside_list=new_list # self.projectContext.aside_list=new_list
# self.refresh_tab_slot(True) # self.refresh_tab_slot(True)
print(">>>>>>remove end")
for item in remove_list: for item in remove_list:
item.print_self() item.print_self()
idx = 0 idx = 0
......
<?xml version="1.0" encoding="UTF-8"?> <!-- <?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0"> <ui version="4.0">
<class>MainWindow</class> <class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow"> <widget class="QMainWindow" name="MainWindow">
...@@ -709,4 +709,4 @@ ...@@ -709,4 +709,4 @@
</customwidgets> </customwidgets>
<resources/> <resources/>
<connections/> <connections/>
</ui> </ui> -->
...@@ -327,8 +327,14 @@ class Ui_MainWindow(object): ...@@ -327,8 +327,14 @@ class Ui_MainWindow(object):
self.menu.setObjectName("menu") self.menu.setObjectName("menu")
self.menu_2 = QtWidgets.QMenu(self.menubar) self.menu_2 = QtWidgets.QMenu(self.menubar)
self.menu_2.setObjectName("menu_2") self.menu_2.setObjectName("menu_2")
self.menu_3 = QtWidgets.QMenu(self.menubar) # self.menu_3 = QtWidgets.QMenu(self.menubar)
self.menu_3.setObjectName("menu_3") # self.menu_3.setObjectName("menu_3")
self.menu_4 = QtWidgets.QMenu(self.menubar)
self.menu_4.setObjectName("menu_4")
self.menu_5 = QtWidgets.QMenu(self.menubar)
self.menu_5.setObjectName("menu_5")
self.menu_6 = QtWidgets.QMenu(self.menubar)
self.menu_6.setObjectName("menu_6")
MainWindow.setMenuBar(self.menubar) MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow) self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar") self.statusbar.setObjectName("statusbar")
...@@ -355,12 +361,18 @@ class Ui_MainWindow(object): ...@@ -355,12 +361,18 @@ class Ui_MainWindow(object):
self.action_redo = QtWidgets.QAction(MainWindow) self.action_redo = QtWidgets.QAction(MainWindow)
# self.action_redo.setFont(font) # self.action_redo.setFont(font)
self.action_redo.setObjectName("action_redo") self.action_redo.setObjectName("action_redo")
self.action_3 = QtWidgets.QAction(MainWindow) self.action_3 = QtWidgets.QAction("旁白区间检测",self,triggered=self.show_detect_dialog)
self.action_3.setObjectName("action_3") self.action_3.setEnabled(False)
self.action_4 = QtWidgets.QAction(MainWindow) self.action_4 = QtWidgets.QAction("旁白音频合成",self,triggered=self.show_assemble_dialog)
self.action_4.setObjectName("action_4") self.action_4.setEnabled(False)
self.action_5 = QtWidgets.QAction(MainWindow) self.action_5 = QtWidgets.QAction("旁白导入",self,triggered=self.import_excel)
self.action_5.setObjectName("action_5") self.action_5.setEnabled(False)
# self.action_3.setObjectName("action_3")
# self.action_4 = QtWidgets.QAction(MainWindow)
# self.action_4.setObjectName("action_4")
# self.action_5 = QtWidgets.QAction(MainWindow)
# self.action_5.setObjectName("action_5")
self.action_operate = QtWidgets.QAction(MainWindow) self.action_operate = QtWidgets.QAction(MainWindow)
self.action_operate.setObjectName("action_operate") self.action_operate.setObjectName("action_operate")
self.action_export = QtWidgets.QAction(MainWindow) self.action_export = QtWidgets.QAction(MainWindow)
...@@ -384,13 +396,18 @@ class Ui_MainWindow(object): ...@@ -384,13 +396,18 @@ class Ui_MainWindow(object):
self.menu_2.addSeparator() self.menu_2.addSeparator()
self.menu_2.addAction(self.action_insert_aside_from_now) self.menu_2.addAction(self.action_insert_aside_from_now)
self.menu_2.addAction(self.action_operate) self.menu_2.addAction(self.action_operate)
self.menu_3.addAction(self.action_3) # self.menu_3.addAction(self.action_3)
self.menu_3.addAction(self.action_4) # self.menu_3.addAction(self.action_4)
self.menu_3.addAction(self.action_5) # self.menu_3.addAction(self.action_5)
self.menu_3.addSeparator() # self.menu_3.addSeparator()
self.menubar.addAction(self.menu.menuAction()) self.menubar.addAction(self.menu.menuAction())
self.menubar.addAction(self.menu_2.menuAction()) self.menubar.addAction(self.menu_2.menuAction())
self.menubar.addAction(self.menu_3.menuAction()) self.menubar.addAction(self.action_3)
self.menubar.addAction(self.action_4)
self.menubar.addAction(self.action_5)
# self.menubar.addAction(self.menu_5.menuAction())
# self.menubar.addAction(self.menu_6.menuAction())
# self.menubar.addAction(self.menu_3.menuAction())
self.retranslateUi(MainWindow) self.retranslateUi(MainWindow)
self.tabWidget.setCurrentIndex(0) self.tabWidget.setCurrentIndex(0)
...@@ -410,7 +427,10 @@ class Ui_MainWindow(object): ...@@ -410,7 +427,10 @@ class Ui_MainWindow(object):
self.pb_label.setText(_translate("MainWindow", "刻度")) self.pb_label.setText(_translate("MainWindow", "刻度"))
self.menu.setTitle(_translate("MainWindow", "文件")) self.menu.setTitle(_translate("MainWindow", "文件"))
self.menu_2.setTitle(_translate("MainWindow", "编辑")) self.menu_2.setTitle(_translate("MainWindow", "编辑"))
self.menu_3.setTitle(_translate("MainWindow", "功能按键")) # self.menu_3.setTitle(_translate("MainWindow", "功能按键"))
self.menu_4.setTitle(_translate("MainWindow", "旁白区间检测"))
self.menu_5.setTitle(_translate("MainWindow", "旁白音频合成"))
self.menu_6.setTitle(_translate("MainWindow", "旁白导入"))
self.setting.setText(_translate("MainWindow", "设置")) self.setting.setText(_translate("MainWindow", "设置"))
self.action_open_project.setText(_translate("MainWindow", "打开")) self.action_open_project.setText(_translate("MainWindow", "打开"))
self.import_movie.setText(_translate("MainWindow", "视频导入")) self.import_movie.setText(_translate("MainWindow", "视频导入"))
...@@ -418,15 +438,14 @@ class Ui_MainWindow(object): ...@@ -418,15 +438,14 @@ class Ui_MainWindow(object):
self.action_save.setText(_translate("MainWindow", "保存并备份")) self.action_save.setText(_translate("MainWindow", "保存并备份"))
self.action_undo.setText(_translate("MainWindow", "撤销")) self.action_undo.setText(_translate("MainWindow", "撤销"))
self.action_redo.setText(_translate("MainWindow", "重做")) self.action_redo.setText(_translate("MainWindow", "重做"))
self.action_3.setText(_translate("MainWindow", "旁白区间检测")) # self.action_3.setText(_translate("MainWindow", "旁白区间检测"))
self.action_4.setText(_translate("MainWindow", "旁白音频合成")) # self.action_4.setText(_translate("MainWindow", "旁白音频合成"))
self.action_5.setText(_translate("MainWindow", "旁白导入")) # self.action_5.setText(_translate("MainWindow", "旁白导入"))
self.action_operate.setText(_translate("MainWindow", "操作表格")) self.action_operate.setText(_translate("MainWindow", "操作表格"))
self.action_export.setText(_translate("MainWindow", "导出")) self.action_export.setText(_translate("MainWindow", "导出"))
self.action_insert_aside_from_now.setText(_translate("MainWindow", "当前位置插入旁白")) self.action_insert_aside_from_now.setText(_translate("MainWindow", "当前位置插入旁白"))
self.action_create.setText(_translate("MainWindow", "新建")) self.action_create.setText(_translate("MainWindow", "新建"))
from myVideoWidget import myVideoWidget from myVideoWidget import myVideoWidget
from myvideoslider import myVideoSlider from myvideoslider import myVideoSlider
from mywidgetcontents import myWidgetContents from mywidgetcontents import myWidgetContents
...@@ -68,6 +68,8 @@ def init_speakers(): ...@@ -68,6 +68,8 @@ def init_speakers():
global speakers global speakers
for speaker_info in content["speaker_details"]: for speaker_info in content["speaker_details"]:
speakers.append(Speaker(speaker_info)) speakers.append(Speaker(speaker_info))
for speaker_info in content["speaker_zju_details"]:
speakers.append(Speaker(speaker_info))
def choose_speaker(speaker_name: str) -> Speaker: def choose_speaker(speaker_name: str) -> Speaker:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment