コード例 #1
0
ファイル: main.py プロジェクト: avesloguzova/title-machine
    def handler():
        cur_time = ui.video_canvas.media.currentTime()
        row = len(items)
        ui.table_captions.setRowCount(row + 1)
        dt = total_time - cur_time
        new_item = Item("Enter text here...", cur_time, (1000 if dt > 1000 else dt), 0, 0)
        items.append(new_item)

        f = QtGui.QFont()
        f.setPointSize(20)
        scene_item = ui.video_canvas.scene.addText(new_item.text, f)
        scene_item.setPos(new_item.x, new_item.y)
        scene_item.setDefaultTextColor(QtGui.QColor(255, 255, 255))

        def handle_size_change():
            new_item.x = scene_item.x()
            new_item.y = scene_item.y()
            on_tablewidget_cell_changed(ui)(row, 3)
            on_tablewidget_cell_changed(ui)(row, 4)

        scene_item.xChanged.connect(handle_size_change)
        scene_item.yChanged.connect(handle_size_change)

        for i, prop in enumerate(Item.properties()):
            tw_item = QtGui.QTableWidgetItem(getattr(new_item, prop))
            if prop not in ("x", "y"):
                tw_item.setFlags(Qt.Qt.ItemIsEditable | Qt.Qt.ItemIsEnabled | Qt.Qt.ItemIsSelectable)
            else:
                tw_item.setFlags(Qt.Qt.ItemIsEnabled | Qt.Qt.ItemIsSelectable)
            ui.table_captions.setItem(row, i, tw_item)
コード例 #2
0
ファイル: main.py プロジェクト: avesloguzova/title-machine
 def handler(row, col):
     prop = Item.properties()[col]
     item = items[row]
     tw_item = ui.table_captions.item(row, col)
     scene_item = ui.video_canvas.scene.item_at(row)
     if prop == "x" or prop == "y":
         tw_item.setText(str(getattr(item, prop)))
     elif prop == "text":
         setattr(item, prop, tw_item.text())
         scene_item.setPlainText(item.text)
     else:
         try:
             time_in_msec = str_to_msec(tw_item.text())
             if (prop == "start_time" and time_in_msec < total_time) \
                 or (prop == "duration" and item._start_time + time_in_msec < total_time):
                 setattr(item, prop, tw_item.text())
                 on_video_tick(ui)(ui.video_canvas.media.currentTime())
             else:
                 tw_item.setText(str(getattr(item, prop)))
         except Exception:
             tw_item.setText(str(getattr(item, prop)))