支持拖入视频文件,移除命令行参数
This commit is contained in:
parent
9081d3e585
commit
0afaec558f
16
main.py
16
main.py
|
|
@ -55,6 +55,7 @@ class FrameView(QLabel):
|
|||
self.setAlignment(Qt.AlignmentFlag.AlignCenter)
|
||||
self.setStyleSheet("background: #1a1a1a; border: 1px solid #333;")
|
||||
self.setMouseTracking(True)
|
||||
self.setAcceptDrops(True)
|
||||
|
||||
self._frame: Optional[np.ndarray] = None
|
||||
self._pixmap: Optional[QPixmap] = None
|
||||
|
|
@ -71,7 +72,8 @@ class FrameView(QLabel):
|
|||
self._block_clicks: bool = False
|
||||
|
||||
self.on_point_selected = None
|
||||
self.on_key_pressed = None # 键盘回调
|
||||
self.on_key_pressed = None
|
||||
self.on_file_dropped = None
|
||||
|
||||
@property
|
||||
def reference_ready(self) -> bool:
|
||||
|
|
@ -136,6 +138,15 @@ class FrameView(QLabel):
|
|||
self.on_key_pressed(event.key())
|
||||
super().keyPressEvent(event)
|
||||
|
||||
def dragEnterEvent(self, event) -> None:
|
||||
if event.mimeData().hasUrls():
|
||||
event.acceptProposedAction()
|
||||
|
||||
def dropEvent(self, event) -> None:
|
||||
urls = event.mimeData().urls()
|
||||
if urls and self.on_file_dropped:
|
||||
self.on_file_dropped(urls[0].toLocalFile())
|
||||
|
||||
def paintEvent(self, event) -> None:
|
||||
super().paintEvent(event)
|
||||
painter = QPainter(self)
|
||||
|
|
@ -242,6 +253,7 @@ class MainWindow(QMainWindow):
|
|||
self.frame_view = FrameView()
|
||||
self.frame_view.on_point_selected = self._on_point_changed
|
||||
self.frame_view.on_key_pressed = self._on_key_pressed
|
||||
self.frame_view.on_file_dropped = self.load_video
|
||||
|
||||
# 右侧面板(弹性宽度)
|
||||
panel = QWidget()
|
||||
|
|
@ -764,8 +776,6 @@ def main():
|
|||
""")
|
||||
|
||||
window = MainWindow()
|
||||
if len(sys.argv) > 1:
|
||||
window.load_video(sys.argv[1])
|
||||
window.show()
|
||||
sys.exit(app.exec())
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue